C#.NET Windows Forms tt Lập trình Ứng dụng quản lý Nội dung Nhóm common controls Nhóm containers Nhóm Menus & Toolbars Trao đổi dữ liệu giữa các form... Nội dung Nhóm common co
Trang 1C#.NET Windows Forms (tt)
Lập trình Ứng dụng quản lý
Nội dung
Nhóm common controls
Nhóm containers
Nhóm Menus & Toolbars
Trao đổi dữ liệu giữa các form
Trang 2Nội dung
Nhóm common controls
Nhóm containers
Nhóm Menus & Toolbars
Trao đổi dữ liệu giữa các form
Nhóm common controls
Là nhóm các controlthông dụng (thường được
sử dụng trong hầu hết các trường hợp)
Mỗi control cung cấp chức năng đặc trưng riêng,
chủ yếu là thuộc về nhóm hiển thị (text, danh
sách, image,…), nhập liệu (text, lựa chọn,…)
Nhóm cơ bản
Button
Label
Textbox
CheckBox
RadioButton
Trang 3Nhóm hiển thị đặc trưng của dữ liệu
NumericUpDown
PictureBox
RichTextBox
DateTimePicker
MonthCalendar
ProgressBar
Nhóm chứa danh sách dữ liệu
ComboBox
ListBox
ListView
TreeView
Trang 4Đặc trưng
Cần quan tâm đến danh sách Items và loại item cụ
thể mà control có khả năng lưu giữ.
ComboBox, ListBox: item gốc là text.
ListView: item là ListViewItem(chứa nội dung text và
index image).
TreeView: item là TreeNode(đặc điểm là có phân cấp nên
mỗi TreeNode có thể chứa các TreeNode khác)
Nhóm controlnày chủ yếu để hiển thị danh sách
và cho phép lựa chọn, do đó event cần quan tâm
nhất chính là liên quan đến việc lựa chọn item
Ngoài ra việc hiển thị, lựa chọn có thể được lựa
chọn cách thức qua các property (SelectionMode,
ViewMode,…)
Nội dung
Nhóm common controls
Nhóm containers
Nhóm Menus & Toolbars
Trao đổi dữ liệu giữa các form
Trang 5Nhóm containers
Là nhóm chức năng chủ yếu cho việc layout, sắp
xếp các controls.
Khi sử dụng nhóm này cần lưu ý đến việc layout
cho chính container thông qua property Dock,
Anchor.
Việc sử dụng các container là rất quan trọng
trong xây dựng giao diện chức năng, nó giúp cho
các bố cục rõ rang, dễ dàng quản lý các control
Propertycần quan tâm trong nhóm container là
Controls (tương tự Form)
Panel
Giúp tách riêng nhóm control
Dễ dàng quản lý (ẩn, hiện, enable,…)
Dễ dàng làm nổi bật những nhóm control
Trang 6GroupBox
Tương tự Panel nhưng có thêm title và border mặc
định
Sử dụng khi cần nhóm các control vào một chức
năng cụ thể cần thể hiện
FlowLayoutPanel
Tương tự Panel nhưng tự sắp xếp các control con
kế tiếp nhau
Cho phép thay đổi kiểu sắp xếp (Left-Right,
Top-Down,…)
Trang 7TableLayoutPanel
Tương tự Panel nhưng tự sắp xếp các control con
vào từng cell trên table.
Cho phép thay đổi số lượng, kích thước hàng và cột,
đường phân cách cell
SplitContainer
Là một cặp Panel đi liền kề nhau (chia làm 2 phần).
Cho phép thay đổi kích thước mỗi panel động
Cho phép thay đổi cách hiển thị dọc hay ngang
Trang 8TabControl
Là các panel thể hiện theo dạng đặc biệt (Tab).
Tại một thời điểm chỉ có 1 tab được hiển thị
Nội dung
Nhóm common controls
Nhóm containers
Nhóm Menus & Toolbars
Trao đổi dữ liệu giữa các form
Trang 9Nhóm Menus & Toolbars
Mục tiêu hiển thị các điều hướng cho chương
trình
Các loại được cung cấp
MenuStrip
ToolStrip
StatusStrip
ToolStripContainer
ContextMenuStrip
MenuStrip
Thể hiện của menu thông thường Thường nằm ở
Top
Chủ yếu các text được phân cấp để điều hướng lựa
chọn
MenuStrip
Trang 10Đặc điểm
MenuStripcho phép thiết kế menu trên Form
với các thành phần con như:
ToolStripMenuStrip (menu con)
ToolStripComboBox (menu ComboBox)
ToolStripSeparator (gạch phân cách)
ToolStripTextBox (menu TextBox)
Các thuộc tính cơ bản
ToolStripMenuItem
Thể hiện tùy chọn trên menu
Thay thế cho MenuItem (vẫn có thể sử dụng nếu
muốn)
Các thuộc tính
Trang 11 Các event
ToolStripComboBox
Trình bày MenuItem như một ComboBox
Các thuộc tính hoàn toàn tương tự ComboBox
Ngoài ra có thêm thuộc tính TooltipText thể hiện
chuỗi Tip khi chuột di vào
Các event chính
ToolStripTextBox
Trình bày MenuItem dạng TextBox
Hoàn toàn tương tự như TextBox
Ngoài ra có thêm thuộc tính TooltipText thể hiện
chuỗi Tip khi chuột di vào
Các event cũng hoàn toàn tương tự TextBox
(TextChanged, Click, DoubleClick)
ToolStripSeparator
Trình bày MenuItem dạng đường kẻ ngăn cách
Tương tự như nếu sử dụng ToolStripMenuItem với
Text là “ -”;
Trang 12ContextMenuStrip
Là Menu dạng popup (thường xuất hiện cùng việc
nhấn chuột phải)
Có thể dùng chung ContextMenuStrip cho cả Form
và các Control con
Các thuộc tính hầu như giống với MenuStrip
Sau khi đã có Control ContextMenuStrip thì có thể
gán vào thuộc tính ContextMenuStrip của các
Control
ContextMenuStrip
ToolStrip
Là Control trình bày thanh công cụ giao tiếp với
người dùng thông qua các ToolStripItem Thường
nằm ngay dưới menu
ToolStrip
Trang 13ToolStripItem
Có các loại ToolStripItem khác nhau như:
ToolStripButton, ToolStripComboBox,
ToolStripSplitButton (nút dạng sổ danh sách, có thể
nhấn độc lập), ToolStripLabel, ToolStripSeparator,
ToolStripDropDownButton (dạng sổ danh sách),
ToolStripProgressBar và ToolStripTextBox
Các thuộc tính
Các event
ToolStripProgressBar
Trình bày một thanh thể hiện quá trình hoàn thành tác vụ
nào đó
Trang 14StatusStrip
Là Control để trình bày thông tin trạng thái trên
Form
Có các thành phần con như: ToolStripStatusLabel,
ToolStripDropDownButton, ToolStripSplitButton và
ToolStripProgressBar
Các thuộc tính hoàn toàn tương tự ToolStrip
StatusStrip
Properties
Trình bày chuỗi trên StatusStrip tương tự như Label
Trang 15ToolStripDropDownButton
Thể hiện dạng sổ danh sách các MenuStripItem:
ToolStripMenuItem, ToolStripTextBox,
ToolStripComboBox, ToolStripSeparator
Các thuộc tính hầu hết tương tự như
ToolStripStatusLabel, thuộc tính khác biệt là
DropDownLists: Collection các thành phần con kể
trên
Event: ngoài Click và DoubleClick thì có thêm event
DropDownItemClick raise khi nhấn vào từng phần
tử con
ToolStripContainer
Bộ quản lý ToolStrip ở các cạnh
ToolStripContainer
Trang 16Nội dung
Nhóm common controls
Nhóm containers
Nhóm Menus & Toolbars
Trao đổi dữ liệu giữa các form
Trao đổi dữ liệu giữa các Form
Với ứng dụng WinForms, trong một số trường
hợp chúng ta cần phải trao đổi dữ liệu từ form
này sang form khác
Dựa vào kiến thức cơ bản C# có thể đề suất 5
phương pháp sau:
Sử dụng phương thức khởi tạo (Constructor)
Sử dụng đối tượng tham chiếu (reference object)
Sử dụng thuộc tính của lớp đối tượng (properties)
Sử dụng delegates
Sử dụng events
Trang 17Sử dụng phương thức khởi tạo (Constructor)
Ưu điểm: đơn giản, dễ sử dụng, chỉ cần tạo
phương thức khởi tạo cho Form cần nhận dữ liệu
có tham số phù hợp
Nhược điểm: chỉ truyền được dữ liệu ngay lúc khởi
tạo Form
var frm = new frmEdit (this);
frm.StartPosition = FormStartPosition CenterParent ;
frm ShowDialog ();
Sử dụng đối tượng tham chiếu (reference
object)
Cách thức cài đặt: trong Form cần nhận dữ liệu sẽ
gán 1 tham chiếu đến Form truyền dữ liệu, đồng
thời phải public các thành phần cần lấy dữ liệu
Nhược điểm: nếu dữ liệu cần truyền đi gồm nhiều
thành phần thì cài đặt dài dòng và mất đi tính đóng
gói của lớp
Trang 18Sử dụng thuộc tính của lớp đối tượng
(properties)
Cách thức cài đặt: tạo các Properties của các dữ
liệu cần truyền đi
Nhược điểm: cài đặt dài dòng và vẫn phụ thuộc
việc cài đặt hành động của chính Form truyền
Sử dụng delegates
Cách thức cài đặt: trong form truyền dữ liệu khai
báo delegate với dữ liệu tương ứng, trong form
nhận sẽ tạo hàm tiếp nhận delegate đó
Ưu điểm: việc hành xử cụ thể sẽ do chính Form
nhận quyết định
Nhược điểm: cài đặt cần kiến thức delegates Cần
nắm giữ đối tượng delegate
Trang 19Sử dụng events
Hoàn toàn tương tự phương pháp sử dụng
delegates, điểm khác là thay thế bằng events
Ưu điểm: hành động do Form nhận quyết định và
đồng thời việc cài đặt thời điểm xảy ra phương thức
là tùy ý
Bài tập
Xây dựng chương trình quản lý danh sách sinh
viên với việc sửa đổi trên dialog riêng