Bài giảng Lập trình trên môi trường Windows - Chương 3: Điều khiển trên form (Windows Controls) - Dương Thành Phết

1.TỔNG QUAN VỀ CONTROLS

1.1. Giới thiệu:

 Control là một thành phần cơ bản trên form

 Có các thành phần

 Thuộc tính

 Phương thức

 Sự kiện

 Tất cả các control chứa trong namespace:

System.Windows.Forms

pdf 123 trang phuongnguyen 8480
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình trên môi trường Windows - Chương 3: Điều khiển trên form (Windows Controls) - Dương Thành Phết", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Lập trình trên môi trường Windows - Chương 3: Điều khiển trên form (Windows Controls) - Dương Thành Phết

Bài giảng Lập trình trên môi trường Windows - Chương 3: Điều khiển trên form (Windows Controls) - Dương Thành Phết
Chương 3: 
ĐIỀU KHIỂN TRÊN FORM 
(WINDOWS CONTROLS) 
1 
 Giảng Viên: ThS. Dương Thành Phết 
 Email: phetcm@gmail.com 
 Facebook: DuongThanhPhet 
 Website:  
 Tel: 0918158670 
LẬP TRÌNH TRÊN MÔI TRƯỜNG WINDOWS 
KHOA CÔNG NGHỆ THÔNG TIN 
NỘI DUNG 
Thiết kế Layout trên Form 2 
Các control trên Form 3 
Mouse Event & Keyboard Event 4 
2 
Tổng quan về Controls 1 
3 
1.TỔNG QUAN VỀ CONTROLS 
1.1. Giới thiệu: 
 Control là một thành phần cơ bản trên form 
 Có các thành phần 
 Thuộc tính 
 Phương thức 
 Sự kiện 
 Tất cả các control chứa trong namespace: 
System.Windows.Forms 
1.2. Thuộc tính controls 
Properties Description 
BackColor Màu nền của control 
BackgroundImage Ảnh nền của control 
ForeColor Màu hiển thị text trên form 
Enable Thiết lập trạng thái truy cập của control 
Focus Chuyển focus vào control 
Font Font hiển thị text trên control 
TabIndex Thứ tự tab của control 
TabStop Sử dụng tab để select control 
Text Text hiển thị trên control 
TextAlign Canh lề text trên control 
Visible Xác định hiển thị control 
Size Kích thước của control 4 
1.TỔNG QUAN CONTROLS 
5 
2. THIẾT KẾ LAYOUT TRÊN FORM 
2.1 Control layout - anchor 
2.2. Control layout - docking 
6 
2.1 CONTROL LAYOUT - ANCHOR 
None 
FixedSingle Fixed3D FixedDialog 
Sizable 
FormBorderStyle 
7 
 Khi FormBorderStyle = Sizable cho phép thay đổi 
kích thước khi thực thi 
 Sử dụng thuộc tính Anchor: Cho phép control phản 
ứng lại với thao tác resize của form 
 Control có thể thay đổi vị trí tương ứng với việc 
resize của form 
 Control cố định không thay đổi theo việc resize 
của form 
 Các trạng thái neo: Left(Cố định theo biên trái); 
Right; Top; Bottom. 
2.1 CONTROL LAYOUT - ANCHOR 
8 
Button được neo biên trái 
Button tự do 
Vị trí tương đối với biên trái không đổi 
Di chuyển tương ứng theo kích thước mới 
2.1 CONTROL LAYOUT - ANCHOR 
9 
 Thiết lập Anchor cho control 
Chọn các 
biên để neo 
Biên được 
chọn neo, 
màu đậm 
2.1 CONTROL LAYOUT - ANCHOR 
10 
Neo theo bốn 
phía 
2.1 CONTROL LAYOUT - ANCHOR 
11 
2.2 CONTROL LAYOUT - DOCKING 
 Các control có thể gắn (dock) với một cạnh nào đó của 
form, hoặc container của control. 
Windows Explorer 
TreeView gắn 
bên trái 
ListView gắn 
bên phải 
12 
Left Right 
Bottom 
None 
Fill 
Top 
2.2. CONTROL LAYOUT - DOCKING 
13 
TextBox 
Dock = None Dock = Top 
Dock = Fill 
TextBox.Multiline = True Dock = Bottom 
2.2. CONTROL LAYOUT - DOCKING 
14 
3. CÁC CONTROL TRÊN FORM 
3.1.Label 
3.2.Textbox 
3.3.Button 
3.4.Listbox 
3.5.Combobox 
3.6.List view 
3.9. Tabcontrol 
3.8.Panel 
3.7.Groupbox 
3.10.Checkbox 
3.24. Multimedia 
3.23. Tooltip 
3.22. Progressbar 
3.21. Timer 
3.20. Richtextbox 
3.19. Monthcalendar 
3.18. Datetimepicker 
3.17. Domainupdown 
3.16. Numericupdown 
3.14. Picturebox 
3.12. Checkedlistbox 
3.11.Radiobutton 
3.15. Imagelist 
3.13. Trackbar 
15 
3.1 LABEL 
 Chức năng: 
 Cung cấp chuỗi thông tin chỉ dẫn 
 Chỉ đọc 
Label 
Thuộc tính thường dùng 
Font Font hiển thị của text 
Text Nội dung text hiển thị 
TextAlign Canh lề text 
ForeColor Màu text 
Visible Trạng thái hiển thị 
3.2 TEXTBOX 
16 
 Chức năng: 
 Vùng cho phép user nhập dữ liệu 
 Cho phép nhập dạng Password 
TextBox 
Thuộc tính thường dùng 
AcceptsReturn Enter tạo thành dòng mới trong chế độ multiline 
Multiline Textbox ở chế độ nhiều dòng, mặc định là false 
PasswordChar Chỉ hiển thị ký tự đại diện cho text 
ReadOnly Chế độ chỉ đọc không cho phép nhập liệu 
ScrollBars Thanh cuộn cho chế độ multiline 
Event thường dùng 
TextChanged Kích hoạt khi text bị thay đổi 
17 
 Ví dụ 
Chuyển thành chữ hoa Double click vào 
textbox để tạo 
event handler cho 
event TextChanged 
3.2. TEXTBOX 
textBox1.Text = textBox1.Text.ToUpper(); 
18 
Sự kiện KeyPress 
Sự kiện phát sinh khi 
textbox nhận focus 
và user nhấn 1 phím 
 Ví dụ 
3.2. TEXTBOX 
19 
3.3. BUTTON 
 Chức năng: 
 Cho phép cài đặt 1 hành động 
Button 
Thuộc tính thường dùng 
Text Chuỗi hiển thị trên button 
Event thường dùng 
Click Kích hoạt khi user kích vào button 
20 
3.4. LISTBOX 
 Chức năng: 
 Cung cấp một danh sách các item cho phép chọn 
 ListBox cho hiển thị scroll nếu các item vượt quá 
vùng thể hiện của ListBox 
ListBox 
Thuộc tính thường dùng 
MultiColumn Cho phép nhiều cột 
SelectedIndex Chỉ số mục được chọn 
SelectedItem Giá trị của mục được chọn 
SelectedItems Tập các mục đang được chọn trong List Box 
Sorted Cho phép các mục luôn luôn được sắp xếp 
Selecttion mode Qui định số mục được chọn trong listbox 
Items.Count Tổng số mục trong Listbox 
SelectedItems.Count Tổng số mục được chọn trong Listbox 
21 
3.4. LISTBOX 
ListBox 
Method thức thường dùng 
ClearSelected Bỏ tất cả các mục chọn 
Clear Xóa tất cả các mục trong Listbox 
Items.Add(“Chuỗi”) Thêm 1 mục vào listbox 
Items.Insert(i,”chuỗi”) Chèn thêm mục vào vị trí i 
Items.Remove(“Chuỗi”) Xóa mục khỏi listbox 
Items.RemoveAt(i) Xóa mục tại chỉ số i khỏi Listbox 
Items.Remove(lst.Selecte
dItem); 
Xóa mục được chọn 
Even thường dùng 
SelectedIndexChanged Chỉ số của Mục được chọn bị thay đổi 
SelectedValueChanged Giá trị của Mục được chọn bị thay đổi 
22 
 Thuộc tính Items cho phép thêm item vào ListBox 
Danh sách item 
Cho phép thêm 
item trong màn 
hình thiết kế form 
3.4. LISTBOX 
23 
 ListBox hiển thị dạng Multi Column 
Hiển thị nhiều cột 
3.4. LISTBOX 
24 
Ví dụ: 
Kiểm tra xem chuỗi nhập có trong list box? 
 - Nếu có: Chọn item đó 
 - Ngược lại: Thêm chuỗi mới vào list box 
3.4. LISTBOX 
25 
 Sự kiện SelectedIndexChanged 
SelectedIndexChanged 
Mỗi khi kích chọn vào 
item trong listbox sẽ 
xóa item được chọn 
tương ứng 
3.4. LISTBOX 
26 
 Chức năng: 
 Kết hợp TextBox với 1 danh sách dạng drop down 
 Cho phép click 
3.5. COMBOBOX-DROPDOWNLIST 
ComboBox 
Thuộc tính thường dùng 
Items Tập hợp các mục 
DropDownStyle Kiểu DropdownList 
Text Chuỗi mặc định đầu tiên 
DropDownHeight Chiều cao 
Sorted Luôn được sắp xếp 
AutoCompleteMode Tự động hoàn tất 
 Ghi chú: Các phương thức và sự kiện tương tự như 
Listbox 
27 
 DropDownStyle 
3.5. COMBOBOX 
28 
Bổ sung item 
trong màn hình 
design view 
3.5. COMBOBOX 
29 
Mỗi khi kích chọn một item 
 hiển thị item được chọn 
trên MessageBox 
3.5 COMBOBOX 
Sự kiện SelectedIndexchanged: Xảy ra 
mỗi khi click chọn item 
30 
 Tính năng AutoComplete 
Gõ “Ng” 
AutoCompleteMode 
AutoCompleteSource 
AutoComplete 
3.5. COMBOBOX 
31 
3.6. LIST VIEW 
 Chức năng: 
 Dạng control phổ biến hiện thị một danh sách item 
 Các item có thể có các item con gọi là subitem 
 Có thể hiển thị thông tin theo nhiều dạng thông qua 
thuộc tính View (như windows explorer) 
• Xem dạng chi tiết thông tin 
• Xem dạng icon nhỏ 
• Xem dạng icon lớn 
• Xem dạng tóm tắt 
•  
32 
3.6. LIST VIEW 
ListView 
Thuộc tính thường dùng 
View Các hình thức trình bày/hiển thị 
SmallImageList Hình nhỏ 
LargeImageList Hình lớn 
FullRowSelect Cho phép chọn cả dòng 
MultiSelect Cho phép chọn nhiều 
Items Tập hợp các mục trong Listview 
Columns Chia cột 
Sorting Cho phép sắp xếp 
GridLines Tạo lưới (view=Detail) 
33 
 Các dạng thể hiện của ListView 
3.6. LIST VIEW 
Large Icons: Mỗi item xuất hiện với 
1 icon kích thước lớn và một label 
bên dưới 
Small Icons: Mỗi item xuất hiện với 
icon nhỏ và một label bên phải 
34 
 Các dạng thể hiện của ListView 
3.6. LIST VIEW 
List: Mỗi item xuất hiện với icon nhỏ 
với label bên phải, item được sắp 
theo cột nhưng không có tiêu đề cột 
Title: Mỗi item xuất hiện với icon kích 
thước lớn, bên phải có label chứa 
item và subitem 
35 
Detail: Mỗi item xuất hiện trên một 
dòng, mỗi dòng có các cột chứa 
thông tin chi tiết 
3.6. LIST VIEW 
 Các dạng thể hiện của ListView 
36 
 Tạo các cột cho ListView – Details qua 
 Cửa sổ properties Columns để tạo. 
 Sử dụng code trong chương trình. 
ColumnHeader columnHeader1 = new ColumnHeader(); 
ColumnHeader columnHeader2 = new ColumnHeader(); 
ColumnHeader columnHeader3 = new ColumnHeader(); 
columnHeader1.Text = "Name"; 
columnHeader2.Text = "Address"; 
columnHeader3.Text = "Telephone Number"; 
listView1.Columns.Add(columnHeader1); 
listView1.Columns.Add(columnHeader2); 
listView1.Columns.Add(columnHeader3); 
3.6. LIST VIEW 
37 
Dialog soạn thảo cột 
3.6. LIST VIEW 
38 
 Thêm các item vào ListView 
 Thêm item trong màn hình thiết kế form 
 Thêm item thông qua code 
 Các lớp định nghĩa Item 
 System.Windows.Forms.ListViewItem 
 Mỗi item trong ListView có các item phụ gọi là subitem 
• Lớp ListViewItem.ListViewSubItem định nghĩa các 
subitem của ListView 
• Lớp ListViewSubItem là inner class của ListViewItem 
ColumnHeader1 ColumnHeader2 ColumnHeader3 
Subitem[0] Subitem[1] Subitem[2] 
item 1 
3.6. LIST VIEW 
39 
Minh họa thêm item dùng code 
ListViewItem item1 = new ListViewItem(); 
ListViewItem.ListViewSubItem subitem1; 
subitem1 = new ListViewItem.ListViewSubItem(); 
item1.Text = "Hutech"; 
subitem1.Text = "144/24 DBP - F.25 - Q.BT"; 
item1.SubItems.Add(subitem1); 
listView1.Items.Add(item1); 
Thêm subitem vào item 
Thêm item vào danh sách 
items của ListView 
3.6. LIST VIEW 
40 
 Sự kiện SelectedIndexChanged 
3.6. LIST VIEW 
41 
3.7. GROUPBOX 
 Chức năng: 
 Hiển thị một khung bao quanh một nhóm control 
 Có thể hiển thị một tiêu đề: Thuộc tính Text 
 Khi xóa một GroupBox thì các control chứa trong nó 
bị xóa theo 
Thuộc tính thường dùng 
Controls Danh sách control chứa trong GroupBox. 
Text Caption của GroupBox 
42 
groupBox1 chứa 2 control 
textBox1 và button1 
textBox2 và button2 chứa 
trong Controls của Form 
3.7. GROUPBOX 
43 
3.8. PANEL 
 Chức năng 
 Chứa nhóm các control 
 Không có caption 
 Có thanh cuộn (scrollbar) 
• Xem nhiều control khi kích thước panel giới hạn 
Thuộc tính thường dùng 
AutoScroll Xuất hiện khi panel quá nhỏ để hiển thị hết các 
control, mặc định là false 
BorderStyle Biên của panel, mặc định là None, các tham số 
khác như Fixed3D, FixedSingle 
Controls Danh sách control chứa trong panel 
44 
scroll 
3.8. PANEL 
45 
- Dạng container chứa các control khác 
- Cho phép thể hiện nhiều page trên một form 
- Mỗi page chứa các control như group control. 
 Mỗi page có tag chứa tên của page 
 Click vào các tag để chuyển qua lại giữa các page 
- Ý nghĩa: 
 Cho phép thể hiện nhiều control trên một form 
 Các control có cùng nhóm chức năng sẽ được tổ 
chức trong một tab (page) 
3.9. TABCONTROL 
 Chức năng: 
46 
 TabControl có thuộc tính TabPages, Chứa các đối 
tượng TabPage 
TabControl 
TabPage 
TabPage 
3.9. TABCONTROL 
47 
Buttons 
 Thuộc tính Appearance 
Normal 
FlatButton 
3.9. TABCONTROL 
48 
 Thuộc tính, phương thức & sự kiện thường dùng 
3.9. TABCONTROL 
TabControl 
Thuộc tính thường dùng 
TabPages Tập hợp các trang 
TabCount 
SelectedTab 
Multiline 
SelectedIndex 
Method thường dùng 
SelectTab 
DeselectTab 
Event thường dùng 
SelectedIndexChanged 
49 
 Thêm/Xóa TabPage 
Click chuột phải 
Thêm/Xóa TabPage 
3.9. TABCONTROL 
50 
 Chỉnh sửa các TabPage 
 Chọn thuộc tính TabPages của TabControl 
 Sử dụng màn hình TabPage Collection Editor để 
chỉnh sửa 
3.9. TABCONTROL 
51 
 Bổ sung Control vào TabControl 
 Chọn TabPage cần thêm control 
 Kéo control từ ToolBox thả vào TabPage đã chọn 
Chọn 
TabPage 
cần thêm 
3.9. TABCONTROL 
52 
 Sử dụng code để thêm các TabPage vào TabControl 
private void AddTabControl() 
 { 
 TabControl tabControl1 = new TabControl(); 
 TabPage tabPageGeneral = new TabPage("General"); 
 TabPage tabPageView = new TabPage("View"); 
 tabControl1.TabPages.Add(tabPageGeneral); 
 tabControl1.TabPages.Add(tabPageView); 
 tabControl1.Location = new Point(20, 20); 
 this.Controls.Add(tabControl1); 
 } 
3.9. TABCONTROL 
53 
3.10. CHECKBOX 
 Chức năng: 
 Control đưa ra một giá trị cho trước và user có thể 
 Chọn giá trị khi Checked = true 
 Không chọn giá trị: Checked = false 
Thuộc tính thường dùng 
Appearance 
Text Nhãn cạnh Checkbox 
ThreeState Thiết lập 1 trong 3 trạng thái 
Checked Trạng thài được chọn 
Event thường dùng 
CheckedChanged Khi thay đổi chọn, không chọn 
54 
ThreeState = true : cho phép thiết lập 3 trạng thái: 
 Checkstate = Indeterminate: không xác định 
 CheckState= Checked: chọn 
 CheckState= Unchecked: không chọn 
Chưa chọn 
3.10. CHECKBOX 
55 
3.11. RADIOBUTTON 
 Chức năng: 
 Cho phép chỉ chọn 1 trong 1 nhóm option 
 Khi chọn 1 option thì tự động option được chọn 
trước sẽ uncheck 
 Các radio button chứa trong 1 container (form, 
GroupBox, Panel, TabControl) thuộc một nhóm. 
Thuộc tính thường dùng 
Appearance 
Checked 
Text 
Event thường dùng 
CheckedChanged 
56 
Nhóm 
RadioButton thứ 
2 chứa trong 
GroupBox2 
Nhóm 
RadioButton thứ 1 
chứa trong 
GroupBox1 
3.11. RADIOBUTTON 
57 
3.12. CHECKEDLISTBOX 
 Chức năng: 
Tương tự như list box nhưng mỗi item sẽ có thêm 
check box. 
Thuộc tính thường dùng 
CheckedItems 
CheckedIndices 
SelectedIndices 
MultiColumn 
SelectionMode 
Items 
Method thường dùng 
ClearSelected 
SetSelected 
Event thường dùng 
 SelectedIndexChanged 
SelectedValueChanged 
58 
 Thuộc tính Items lưu trữ danh sách item 
 Có thể bổ sung vào thời điểm 
 Design 
 Run time 
Item được check 
Item được select 
3.12. CHECKEDLISTBOX 
59 
 MultiColumn = true 
Các item được 
tổ chức theo 
nhiều cột 
3.12. CHECKEDLISTBOX 
60 
 Sự kiện SelectedIndexChanged 
3.12. CHECKEDLISTBOX 
61 
3.13. TRACKBAR 
 Chức năng: 
 Cho phép thiết lập giá trị trong khoảng cố định 
cho trước 
 Thao tác qua thiết bị chuột hoặc bàn phím 
Thuộc tính thường dùng 
Minimum 
Maximum 
TickFrequency 
TickStyle 
Value 
Method thường dùng 
SetRange 
Event thường dùng 
 ValueChanged 
Scroll 
62 
public void AddTrackBar() { 
 TrackBar tb1 = new TrackBar(); 
 tb1.Location = new Point(10, 10); 
 tb1.Size = new Size(250, 50); 
 tb1.Minimum = 0; 
 tb1.Maximum = 100; 
 tb1.SmallChange = 1; 
 tb1.LargeChange = 5; 
 tb1.TickStyle = TickStyle.BottomRight; 
 tb1.TickFrequency = 10; 
 tb1.Value = 10; 
 Controls.Add(tb1); 
} 
Tạo thể hiện 
Thiết lập khoảng: 0 - 100 
Số vị trí di chuyển khi dùng 
phím mũi tên 
Số vị trí di chuyển khi 
dùng phím Page 
Kiểu stick ở bên 
dưới/bên phải track 
Số khoảng cách giữa 
các tick mark 
3.13. TRACKBAR 
63 
 Bổ sung Label hiển thị giá trị của TrackBar 
3.13. TRACKBAR 
64 
3.14. PICTUREBOX 
 Chức năng: 
Sử dụng để hiển thị ảnh dạng bitmap, metafile, 
icon, Jpeg, Gif. 
Sử dụng thuộc tính Image để thiết lập ảnh lúc 
design hoặc runtime. 
Các thuộc tính 
• Image: ảnh cần hiển thị 
• SizeMode: Normal; StretchImage; AutoSize; 
CenterImage; Zoom 
5 pictureBox với các SizeMode 
tương ứng 
65 
3.15. IMAGELIST 
 Chức năng: 
Cung cấp tập hợp những đối tượng image cho 
các control khác sử dụng 
• ListView 
• TreeView 
Các thuộc tính thường dùng 
• ColorDepth: Độ sâu của màu 
• Images: Trả về ImageList.ImageCollection 
• ImageSize: Kích thước ảnh 
• TransparentColor: Xác định màu là transparent 
66 
 Các bước sử dụng ImageList 
 Kéo control ImageList từ ToolBox vào Form 
 Thiết lập kích thước của các ảnh: ImageSize 
 Bổ sung các ảnh vào ImageList qua thuộc tính 
Images 
 Sử dụng ImageList cho các control 
• Khai báo nguồn image là image list vừa tạo cho 
control (Thường là thuộc tính ImageList) 
• Thiết lập các item/node với các ImageIndex 
tương ứng (Việc thiết lập có thể ở màn hình 
design view hoặc code view) 
3.15. IMAGELIST 
67 
 Tạo ImageList 
3.15. IMAGELIST 
68 
 Sử dụng ImageList trong ListView 
Hiển thị dạng 
small icon 
Khai báo 
ImageList cho 
ListView 
listView1 
3.15. IMAGELIST 
69 
 Thêm Item 
Khai báo image 
cho item qua 
ImageIndex 
3.15. IMAGELIST 
70 
 Demo 
Mỗi item sẽ có ảnh 
theo đúng thứ tự 
ImageIndex được 
khai báo trong 
ImageList 
3.15. IMAGELIST 
71 
3.16. NUMERICUPDOWN 
 Chức năng: 
Cho phép chọn các giá trị trong khoảng xác 
định thông qua: Nút up & down hoặc Nhập 
trực tiếp giá trị 
 Các thuộc tính: 
Minimum 
Maximum 
Value 
 Increment 
 Sự kiện: 
ValueChanged 
 Phương thức: 
DownButton 
UpButton 
72 
 Đoạn code thêm control NumericUpDown 
public void AddNumericUpDown() { 
 NumericUpDown numUpDn = new NumericUpDown(); 
 numUpDn.Location = new Point(50, 50); 
 numUpDn.Size = new Size(100, 25); 
 numUpDn.Hexadecimal = true; // hiển thị dạng hexa 
 numUpDn.Minimum = 0; // giá trị nhỏ nhất 
 numUpDn.Maximum = 255; // giá trị lớn nhất 
 numUpDn.Value = 0xFF; // giá trị khởi tạo 
 numUpDn.Increment = 1; // bước tăng/giảm 
 Controls.Add(numUpDn); 
 // thêm control vào ds control của form 
} 
3.16. NUMERICUPDOWN 
73 
 Demo 
Nhập trực tiếp giá trị 
Tăng giảm giá trị 
Hiển thị giá trị 
Hexa 
3.16. NUMERICUPDOWN 
74 
3.17. DOMAINUPDOWN 
 Chức năng: 
 Cho chọn item trong số danh sách item thông 
qua: Button Up & Down hoặc Nhập từ bàn phím 
 Properties 
 Items: danh sách item 
 ReadOnly: Chỉ cho phép thay đổi giá trị qua Up & 
Down 
 SelectedIndex: chỉ mục của item đang chọn 
 SelectedItem: item đang được chọn 
 Sorted: sắp danh sách item 
 Text: text đang hiển thị trên DomainUpDown. 
 Event 
 SelectedItemChanged 
75 
 Nhập item cho DomainUpDown 
String Collection Editor 
Cho phép nhập item 
3.17. DOMAINUPDOWN 
76 
3.18. DATETIMEPICKER 
 Chức năng: 
 Cho phép chọn ngày trong khoảng xác định 
thông qua giao diện đồ họa dạng calendar 
 Kết hợp ComboBox và MonthCalendar 
 Thuộc tính: 
 Format: Định dạng hiển thị (long, short,...) 
 CustomFormat: 
• dd: Hiển thị 2 con số của ngày 
• MM: Hiển thị 2 con số của tháng 
•  
 MaxDate: Giá trị ngày lớn nhất 
 MinDate: Giá trị ngày nhỏ nhất 
 Value: Giá trị ngày hiện tại đang chọn 
77 
private void AddDateTimePicker() { 
 DateTimePicker DTPicker = new DateTimePicker(); 
 DTPicker.Location = new Point(40, 80); 
 DTPicker.Size = new Size(160, 20); 
 DTPicker.DropDownAlign = LeftRightAlignment.Right; 
 DTPicker.Value = DateTime.Now; 
 DTPicker.Format = DateTimePickerFormat.Custom; 
 DTPicker.CustomFormat = "'Ngày' dd 'tháng' MM 'năm' yyyy"; 
 this.Controls.Add(DTPicker); 
} 
3.18. DATETIMEPICKER 
78 
 Demo 
Kích drop down 
để hiện thị hộp 
chọn ngày 
Chọn ngày trong 
khoảng cho trước 
Định dạng xuất: 'Ngày' dd 'tháng' MM 'năm' yyyy 
3.18. DATETIMEPICKER 
79 
3.19. MONTHCALENDAR 
 Chức năng: Cho phép chọn một ngày trong tháng 
hoặc nhiều ngày với ngày bắt đầu và ngày kết thúc. 
 Thuộc tính: 
 MaxDate, MinDate 
 SelectionStart: Ngày bắt đầu chọn 
 SelectionEnd: Ngày kết thúc 
Sinh viên tự tìm hiểu thêm 
80 
3.20. RICHTEXTBOX 
 Chức năng: 
 Mở rộng từ TextBox, có thể hiển thị text dạng rich 
text format (RTF) 
 Các text có thể có các font chữ và màu sắc khác 
nhau. 
 Đoạn text có thể được canh lề, có thể chứa các 
ảnh 
 Ứng dụng WordPad là dạng RichTextBox 
Sinh viên tự tìm hiểu thêm 
81 
3.21. TIMER 
 Chức năng: 
 Bộ định thời gian, thiết lập một khoảng thời gian 
xác định (interval) và khi hết khoảng thời gian đó 
Timer sẽ phát sinh sự kiện tick. 
Thuộc tính thường dùng 
Enabled 
Interval 
Method thường dùng 
Start 
Stop 
Event thường dùng 
Tick 
82 
 Hiển thị giờ hệ thống 
Enable sự 
kiện Tick 
Khoảng thời 
gian chờ giữa 
2 lần gọi Tick 
Hiển thị thời gian 
3.21. TIMER 
83 
 Sự kiện Tick 
Khai báo 
trình xử lý sự 
kiện Tick 
3.21. TIMER 
84 
 Demo 
Mỗi giây sự kiện Tick 
phát sinh. Trình xử lý 
của Tick sẽ lấy giờ 
hệ thống và hiển thị 
lên Label 
3.21. TIMER 
85 
3.22. PROGRESSBAR 
 Chức năng: Hiển thị tiến độ thực hiện của một công 
việc nào đó 
 Các thuộc tính: 
 Minimum: Giá trị nhỏ nhất 
 Maximum: Giá trị lớn nhất 
 Step: Số bước tăng khi gọi hàm PerformStep 
 Value: Giá trị hiện tại 
 Style: Kiểu của progress bar 
 Phương thức 
 PerformStep(): Tăng thêm step 
 Increment(int value): Tăng vị trí hiện tại của tiến độ 
với giá trị xác định 
86 
 Khai báo thanh tiến độ 0-100, step = 10 
Max = 100 
Min = 0 
Step = 10 
3.22. PROGRESSBAR 
87 
3.22. PROGRESSBAR 
88 
 Demo 
Thể hiện 
trực quan 
tiến độ 
Tăng tiến độ 
theo step và cập 
nhật lại % hoàn 
thành lên label 
3.22. PROGRESSBAR 
89 
3.23. TOOLTIP 
 Chức năng: 
 Cung cấp chức năng hiển thị một khung text nhỏ 
khi user di chuyển chuột vào control 
 Khung text chứa nội dung mô tả ý nghĩa của 
control 
ToolTip xuất 
hiện khi user di 
chuyển chuột 
vào vùng 
control 
90 
 Tạo ToolTip 
3.23. TOOLTIP 
 Từ ToolBox kéo ToolTip thả vào form 
 Chọn control muốn thêm tooltip 
 Trong cửa sổ Properties của control. Thêm text vào 
thuộc tính ToolTip để hiển thị khi tooltip xuất hiện. 
91 
 Khai báo Tooltip cho textbox trong Design View 
Nội dung Tooltip 
3.23. TOOLTIP 
 Khai báo tooltip cho button 
Nhập nội dung 
Tooltip cần hiển 
thị 
92 
3.23. TOOLTIP 
 Khai báo tooltip cho listbox bằng code 
93 
3.23. TOOLTIP 
 Demo 
ToolTip xuất 
hiện khi user di 
chuyển chuột 
vào vùng 
control 
94 
3.23. TOOLTIP 
95 
3.24. MULTIMEDIA 
 Chức năng: 
 Tạo ứng dụng chứa Windows Media Player control 
cho phép Play các file video/sound theo nhiều dạng 
format: 
• MPEG (Motion Pictures Expert Group): video 
• AVI (Audio-video Interleave): video 
• WAV (Windows Wave-file Format): audio 
• MIDI (Musical Instrument Digital Interface): audio 
96 
 Bước 1: Bổ sung Windows Media Player vào 
ToolBox 
 Click phải vào ToolBox ->chọn Choose Items 
 Trong Dialog Choose Toolbox Items chọn COM 
Components Chọn Windows Media Player 
 Control WMP sẽ hiện ở dưới cùng của ToolBox 
3.24. MULTIMEDIA 
97 
 Bước 2: Kéo Windows Media Player thả vào Form 
 Thiết lập Dock = Fill 
Dock = Fill 
Đổi tên control thành WMPlayer 
3.24. MULTIMEDIA 
98 
 Bước 3: Tạo MenuStrip để bổ sung chức năng 
Open File media 
3.24. MULTIMEDIA 
99 
 Bước 4: viết trình xử lý cho Menuitem Open 
3.24. MULTIMEDIA 
 private void openToolStripMenuItem_Click(. . . ) 
 { 
 //Tạo hộp thoại mở file 
 OpenFileDialog dlg = new OpenFileDialog(); 
 //lọc hiện thị các loại file 
 dlg.Filter = "AVI file| *.avi | MPEG File | *.mpeg | Wav File | 
 *.Wav | Midi File | *.midi | Mp4 File | *.mp4"; 
 //hien thi openDialog 
 if (dlg.ShowDialog() == DialogResult.OK) 
 //Lấy tên file cần mở 
 axWindowsMediaPlayer1.URL = dlg.FileName; 
 } 
10
0 
 Demo 
3.24. MULTIMEDIA 
4.1. MOUSE EVENT & KEYBOAR EVENT 
101 
4.1. Mouse Event 
4.2. Keyboard Event 
4.1. MOUSE EVENT 
Mouse là thiết bị tương tác thông dụng trên GUI 
Một số các thao tác phát sinh từ mouse 
 Di chuyển 
 Click chuột 
Ứng dụng cần xử lý sự kiện chuột nào sẽ khai báo trình 
xử lý tương ứng 
 Lớp MouseEventArgs được sử dụng để chứa thông tin 
truyền vào cho trình xử lý sự kiện mouse. 
Mỗi trình xử lý sự kiện sẽ có tham số là đối tượng object 
và đối tượng MouseEventArgs (hoặc EventArgs) 
102 
 Tham số cho sự kiện liên quan đến mouse 
Tọa độ (x,y) 
của con trỏ 
chuột 
Button được nhấn Số lần kích chuột 
MouseEventArgs 
103 
4.1. MOUSE EVENT 
Sự kiện chuột với tham số kiểu EventArgs 
MouseEnter Xuất hiện khi con trỏ chuột đi vào vùng biên của 
control 
MouseLeave Xuất hiện khi con trỏ chuột rời khỏi biên của control 
Sự kiện chuột với tham số kiểu MouseEventArgs 
MouseDown/ 
MouseUp 
Xuất hiện khi button được nhấn/thả và con trỏ chuột 
đang ở trong vùng biên của control 
MouseMove Xuất hiện khi chuột di chuyển và con trỏ chuột ở 
trong vùng biên của control 
104 
4.1. MOUSE EVENT 
Thuộc tính của lớp MouseEventArgs 
Button Button được nhấn {Left, Right, Middle, none} 
có kiểu là MouseButtons 
Clicks Số lần button được nhấn 
X Tọa độ x của con trỏ chuột trong control 
Y Tọa độ y của con trỏ chuột trong control 
105 
4.1. MOUSE EVENT 
MouseMove 
106 
4.1. MOUSE EVENT 
 Demo 
Hiển thị tọa độ 
hiện tại của con 
trỏ chuột 
Vị trí hiện tại 
của con trỏ 
chuột 
107 
4.1. MOUSE EVENT 
 Demo thao tác: Click chuột tại một điểm A, giữ 
chuột và di chuyển chuột, chương trình sẽ vẽ 
đường thẳng từ điểm A đến vị trí hiện tại chuột. 
 Các sự kiện cần xử lý 
 MouseDown: Xác định điểm A ban đầu 
 MouseMove: Kiểm tra nếu Left button của chuột 
đang giữ 
 Sử dụng Graphics để vẽ đường thẳng từ A đến 
vị trí hiện tại 
108 
4.1. MOUSE EVENT 
 Bước 1: 
 Tạo biến lưu trữ điểm A khi user kích chuột trái 
 Biến pA có kiểu Point là biến thành viên của Form1 
Lớp Form1 
Biến pA lưu giữ tọa độ 
khi chuột trái được click 
109 
4.1. MOUSE EVENT 
 Bước 2 
 Khai báo xử lý sự kiện MouseDown trong Form1 
• Trong cửa sổ event của Form1, kích đúp vào sự 
kiện MouseDown 
Lưu lại điểm được nhấn chuột 
110 
4.1. MOUSE EVENT 
 Bước 3 
 Cài đặt xử lý sự kiện MouseMove: Kiểm tra nếu 
LeftButton được nhấn. Vẽ đường thẳng từ pA đến vị 
trí hiện tại 
111 
4.1. MOUSE EVENT 
4.2. KEYBOARD EVENT 
 Phát sinh khi một phím được nhấn hoặc thả 
 Có 3 sự kiện 
 KeyPress 
 KeyUp 
 KeyDown 
 KeyPress phát sinh kèm theo với mã ASCII của 
phím được nhấn 
 KeyPress không cho biết trạng thái các phím bổ 
sung {Shift, Alt, Ctrl} 
 Sử dụng KeyUp & KeyDown để xác định trạng thái 
các phím bổ sung. 
112 
Sự kiện với tham số kiểu KeyEventArgs 
KeyDown Phát sinh khi phím được nhấn 
KeyUp Phát sinh khi phím được thả 
Sự kiện với tham số kiểu KeyPressEventArgs 
KeyPress Khởi tạo khi phím được nhấn 
Thuộc tính của lớp KeyPressEventArgs 
KeyChar Chứa ký tự ASCII của phím được nhấn 
Handled Sự kiện KeyPress có được xử lý chưa? 
Thuộc tính của lớp KeyEventArgs 
Alt,Control,Shift Trạng thái các phím bổ sung 
Handled Cho biết sự kiện đã xử lý 
113 
4.2. KEYBOARD EVENT 
Thuộc tính của lớp KeyEventArgs (tt) 
KeyCode Trả về mã ký tự được định nghĩa trong 
Keys enumeration 
KeyData Chứa mã ký tự với thông tin phím bổ sung 
KeyValue Trả về số int, đây chính là mã Windows 
Virtual Key Code 
Modifier Trả về giá trị của phím bổ sung 
114 
4.2. KEYBOARD EVENT 
 Keys Enumeration 
115 
4.2. KEYBOARD EVENT 
 Các sự kiện: KeyPress, KeyDown, KeyUp 
 Khi nhấn một phím 
• Bắt sự kiện KeyPress: Xuất ra phím được nhấn 
• Bắt sự kiện KeyDown: Xuất ra các tham số 
trong KeyEventArgs 
 Khi thả phím: Xóa các thông tin mô tả phím được 
nhấn trong các label 
 Cách thực hiện 
 Thiết kế trên form có 2 Label: 
 - lblChar: Hiển thị ký tự được nhấn trong KeyPress 
 - lblKeyInfo:Hiển thị thông tin của KeyEventArgs 
khi KeyDown 
116 
4.2. KEYBOARD EVENT 
 Bước 1: Tạo Windows Form như hình mô tả 
Label chứa ký tự 
được nhấn trong 
sự kiện KeyPress 
Label chứa thông 
tin mã ký tự được 
nhấn trong sự 
kiện KeyDown 
117 
4.2. KEYBOARD EVENT 
 Bước 2: 
 Tạo KeyPress Event Handling cho form 
118 
4.2. KEYBOARD EVENT 
 Bước 3: 
 Tạo KeyDown Event Handling cho form 
119 
4.2. KEYBOARD EVENT 
120 
 Demo 
4.2. KEYBOARD EVENT 
 Chương trình Calculator mở rộng cho phép xử 
lý các phím. 
 Form nhận xử lý thông điệp KeyDown 
• Xác định các phím tương ứng rồi gọi sự kiện 
click của button(VD: gõ phím 1, tương tự như 
button “1” được nhấn) 
 Cách thực hiện 
 Khai báo trình xử lý sự kiện 
 KeyDown cho Form chính 
 Thiết lập thuộc tính 
 KeyPreview cho Form 
 để nhận sự kiện bàn phím. 
121 
4.2. KEYBOARD EVENT 
 Viết phần xử lý cho sự kiện KeyDown 
 Xác định các phím tương ứng để gọi sự kiện click 
của các button. 
Gọi event Click 
của button “1” 
Phím '=' được nhấn 
Phím „+' được nhấn 
122 
4.2. KEYBOARD EVENT 
123 

File đính kèm:

  • pdfbai_giang_lap_trinh_tren_moi_truong_windows_chuong_3_dieu_kh.pdf