Bài giảng Windows Controls - Nguyễn Văn Phong

ppt 133 trang hapham 4300
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Windows Controls - Nguyễn Văn Phong", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pptbai_giang_windows_controls_nguyen_van_phong.ppt

Nội dung text: Bài giảng Windows Controls - Nguyễn Văn Phong

  1. Windows Controls Nguyễn Văn Phong 1
  2. Nội Dung ◼ Tổng quan controls ◼ Property & layout của control ❑ Anchor ❑ Docking ◼ Các control thông dụng ❑ Label, textbox, button ❑ ListBox, Combobox, listView ❑ GroupBox, Panel & TabControl ❑ CheckBox, RadioButton, CheckedListBox, TrackBar ❑ PictureBox, ImageList ❑ NumericUpDown, DomainUpDown ❑ RichTextBox, DateTimePicker, MonthCalendar ❑ Advanced controls ◼ Mouse Event handling ◼ Keyboard event handling Nguyễn Văn Phong - 2010 2
  3. Tổng quan controls ◼ 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 Nguyễn Văn Phong - 2010 3
  4. Tổng quan controls ◼ Một số thuộc tính của control ❑ Text: mô tả text xuất hiện trên control ❑ Focus: phương thức chuyển focus vào control ❑ TabIndex: thứ tự của control nhận focus ◼ Mặc định được VS.NET thiết lập ❑ Enable: thiết lập trạng thái truy cập của control ❑ Visible: ẩn control trên form, có thể dùng phương thức Hide ❑ Anchor: ◼ Neo giữ control ở vị trí xác định ◼ Cho phép control di chuyển theo vị trí ❑ Size: xác nhận kích thước của control Nguyễn Văn Phong - 2010 4
  5. Thuộc tính controls Common 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 Enabled Xác định khi control trạng thái enable Focused Xác định khi control nhận focus Font Font hiển thị text trên control TabIndex Thứ tự tab của control TabStop Nếu true, user có thể sử dụng tab để select control Text Text hiển thị trên form TextAlign Canh lề text trên control Visible Xác định hiển thị control Nguyễn Văn Phong - 2010 5
  6. Control Layout - Anchor None Sizable FormBorderStyle Fixed3D FixedDialog FixedSingle Nguyễn Văn Phong - 2010 6
  7. Control Layout - Anchor ◼ Khi FormBorderStyle = Sizable, form cho phép thay đổi kích thước khi Runtime ❑ Sự bố trí của control cũng thay đổi! ◼ 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: cố định theo biên phải ◼ Top: cố định theo biên trên ◼ Bottom: cố định theo biên dưới Nguyễn Văn Phong - 2010 7
  8. Control Layout - Anchor Button được neo biên trái Vị trí tương đối với biên trái không đổi Button tự do Di chuyển tương ứng theo kích thước mới Nguyễn Văn Phong - 2010 8
  9. Control Layout - Anchor ◼ Thiết lập Anchor cho control Chọn các biên để neo Biên được chọn neo, màu đậm Nguyễn Văn Phong - 2010 9
  10. Control Layout - Anchor Neo theo bốn phía Nguyễn Văn Phong - 2010 10
  11. 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 ListView gắn bên phải TreeView gắn bên trái Nguyễn Văn Phong - 2010 11
  12. Control Layout - Docking Top Left Fill Right Bottom None Nguyễn Văn Phong - 2010 12
  13. Control Layout - Docking Dock = None Dock = Top TextBox Dock = Fill TextBox.Multiline = True Dock = Bottom Nguyễn Văn Phong - 2010 13
  14. Label, TextBox, Button Nguyễn Văn Phong - 2010 14
  15. Label, TextBox, Button ◼ Label ❑ Cung cấp chuỗi thông tin chỉ dẫn ◼ Chỉ đọc ◼ Được định nghĩa bởi lớp Label ❑ Dẫn xuất từ Control ◼ TextBox ❑ Thuộc lớp TextBox ❑ Vùng cho phép user nhập dữ liệu ◼ Cho phép nhập dạng Password ◼ Button ❑ cho phép cài đặt 1 hành động. ◼ Checkbox và RadioButton ❑ Dẫn xuất từ ButtonBase Nguyễn Văn Phong - 2010 15
  16. Label, TextBox, Button 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ị Nguyễn Văn Phong - 2010 16
  17. Label, TextBox, Button TextBox Thuộc tính thường dùng AcceptsReturn Nếu true: nhấn enter tạo thành dòng mới trong chế độ multiline Multiline Nếu true: textbox ở chế độ nhiều dòng, mặc định là false PasswordChar Chỉ hiển thị ký tự đại diện cho text ReadOnly Nếu true: textbox hiển thị nền xám, và ko cho phép nhập liệu, mặc định là false ScrollBars Thanh cuộn cho chế độ multiline Event thường dùng TextChanged Kích hoạt khi text bị thay đổi, trình xử lý được khởi tạo mặc định khi kích đúp vào textbox trong màn hình design view Nguyễn Văn Phong - 2010 17
  18. Label, TextBox, Button Button Thuộc tính thường dùng Text Chuỗi hiển thị trên bề mặt button Event thường dùng Click Kích hoạt khi user kích vào button, khai báo mặc định khi người lập trình kích đúp vào button trong màn hình Design View của Form. Nguyễn Văn Phong - 2010 18
  19. Label, TextBox, Button ◼ Demo TextBox Double click vào Chuyển thành chữ hoa textbox để tạo event handler cho event TextChanged Nguyễn Văn Phong - 2010 19
  20. Label, TextBox, Button ◼ Chỉ cho nhập số Sự kiện phát sinh khi textbox nhận focus và Sự kiện KeyPress user nhấn 1 phím Nguyễn Văn Phong - 2010 20
  21. ListBox & ComboBox Nguyễn Văn Phong - 2010 21
  22. ListBox & ComboBox ◼ ListBox ❑ Cung cấp một danh sách các item cho phép user chọn ❑ ListBox cho phép hiển thị scroll nếu các item vượt quá vùng thể hiện của ListBox Properties Items SelectedItems MultiColumn ListBox Sorted SelectedIndex Text SelectedItem Nguyễn Văn Phong - 2010 22
  23. ListBox & ComboBox ◼ Method & Event Method ClearSelected ListBox GetSelected SetSelected Event FindString SelectedIndexChanged SelectedValueChanged Nguyễn Văn Phong - 2010 23
  24. ListBox & ComboBox ◼ Thuộc tính Items cho phép thêm item vào ListBox Cho phép thêm item Danh sách item trong màn hình thiết kế form Nguyễn Văn Phong - 2010 24
  25. ListBox & ComboBox ◼ ListBox hiển thị dạng Multi Column Hiển thị nhiều cột Nguyễn Văn Phong - 2010 25
  26. ListBox & ComboBox ◼ Demo ListBox Kiểm tra xem chuỗi nhập có trong list box? - Nếu có: select item đó - Ngược lại: thêm chuỗi mới vào list box Nguyễn Văn Phong - 2010 26
  27. ListBox & ComboBox ◼ Sự kiện SelectedIndexChanged Mỗi khi kích chọn vào item trong listbox sẽ xóa item được chọn tương ứng SelectedIndexChanged Nguyễn Văn Phong - 2010 27
  28. ListBox & ComboBox ◼ ComboBox ❑ Kết hợp TextBox với một danh sách dạng drop down ❑ Cho phép user kích chọn item trong danh sách drop down Items Sorted DropDownStyle ComboBox MaxDropDownItems Text AutoCompleteMode DropDownHeight Nguyễn Văn Phong - 2010 28
  29. ListBox & ComboBox ◼ DropDownStyle Nguyễn Văn Phong - 2010 29
  30. ListBox & ComboBox Bổ sung item trong màn hình design view Nguyễn Văn Phong - 2010 30
  31. ListBox & ComboBox Mỗi khi kích chọn một item hiển thị item được chọn trên MessageBox Nguyễn Văn Phong - 2010 31
  32. ListBox & ComboBox AutoComplete ◼ Tính năng AutoComplete Gõ “Ng” AutoCompleteMode AutoCompleteSource Nguyễn Văn Phong - 2010 32
  33. ListView Nguyễn Văn Phong - 2010 33
  34. List View ◼ 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 ◼ Windows Explorer hiển thị thông tin thư mục, tập tin ❑ Có thể hiển thị thông tin theo nhiều dạng thông qua thuộc tính View ◼ 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 ◼ ◼ Lớp ListView dẫn xuất từ System.Windows.Forms.Control Nguyễn Văn Phong - 2010 34
  35. List View ◼ Properties GridLines Sorting SmallImageList Columns LargeImageList Items MultiSelect FullRowSelect Nguyễn Văn Phong - 2010 35
  36. List View ◼ Các dạng thể hiện của ListView Details Small Icons List Large Icons Tile Nguyễn Văn Phong - 2010 36
  37. 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 Nguyễn Văn Phong - 2010 37
  38. List View Small Icons Mỗi item xuất hiện với icon nhỏ và một label bên phải Nguyễn Văn Phong - 2010 38
  39. 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 Nguyễn Văn Phong - 2010 39
  40. List View Tile 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 Nguyễn Văn Phong - 2010 40
  41. List View 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 Nguyễn Văn Phong - 2010 41
  42. List View ◼ 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); Nguyễn Văn Phong - 2010 42
  43. List View Dialog soạn thảo cột Nguyễn Văn Phong - 2010 43
  44. List View ◼ 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 item 1 Subitem[0] Subitem[1] Subitem[2] Nguyễn Văn Phong - 2010 44
  45. ListView ◼ Minh họa thêm item qua 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); Thêm subitem vào item listView1.Items.Add(item1); Thêm item vào danh sách items của ListView Nguyễn Văn Phong - 2010 45
  46. ListView ◼ Sự kiện SelectedIndexChanged Nguyễn Văn Phong - 2010 46
  47. GroupBox, Panel & TabControl Nguyễn Văn Phong - 2010 47
  48. GroupBox & Panel ◼ Bố trí controls trên GUI ◼ GroupBox ❑ 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 ❑ Lớp GroupBox kế thừa từ System.Windows.Forms.Control ◼ Panel ❑ 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 Nguyễn Văn Phong - 2010 48
  49. GroupBox & Panel GroupBox Mô tả Thuộc tính thường dùng Controls Danh sách control chứa trong GroupBox. Text Caption của GroupBox Panel 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 Nguyễn Văn Phong - 2010 49
  50. GroupBox & Panel ◼ Minh họa GroupBox groupBox1 chứa 2 control textBox1 và button1 textBox2 và button2 chứa trong Controls của Form Nguyễn Văn Phong - 2010 50
  51. GroupBox & Panel ◼ Minh họa Panel scroll Nguyễn Văn Phong - 2010 51
  52. TabControl ◼ Dạng container chứa các control khác ◼ Cho phép thể hiện nhiều page trên một form duy nhất ◼ Mỗi page chứa các control tương tự như group control khác. ❑ Mỗi page có tag chứa tên của page ❑ Kích 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) Nguyễn Văn Phong - 2010 52
  53. TabControl ◼ TabControl có thuộc tính TabPages ❑ Chứa các đối tượng TabPage TabPage TabControl TabPage Nguyễn Văn Phong - 2010 53
  54. TabControl ◼ Thuộc tính Appearance Normal Buttons FlatButton Nguyễn Văn Phong - 2010 54
  55. TabControl ◼ Thuộc tính, phương thức & sự kiện thường dùng Properties TabPages Method TabCount SelectTab SelectedTab DeselectTab Multiline Event SelectedIndex SelectedIndexChanged Nguyễn Văn Phong - 2010 55
  56. TabControl ◼ Thêm/Xóa TabPage Kích chuột phải Thêm/Xóa TabPage Nguyễn Văn Phong - 2010 56
  57. TabControl ◼ 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 Nguyễn Văn Phong - 2010 57
  58. TabControl ◼ 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 Nguyễn Văn Phong - 2010 58
  59. TabControl ◼ 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); } Nguyễn Văn Phong - 2010 59
  60. CheckBox, CheckedListBox RadioButton & TrackBar Nguyễn Văn Phong - 2010 60
  61. CheckBox ◼ 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 ◼ Lớp đại diện CheckBox Properties Appearance Checked CheckedChanged Text ThreeState Nguyễn Văn Phong - 2010 61
  62. CheckBox ◼ 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 Nguyễn Văn Phong - 2010 62
  63. RadioButton ◼ Cho phép user chọn một option trong số nhóm option ◼ Khi user 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. ◼ Lớp đại diện: RadioButton ◼ Khác với nhóm CheckBox cho phép chọn nhiều option, còn RadioButton chỉ cho chọn một trong số các option. Appearance Checked CheckedChanged Text Nguyễn Văn Phong - 2010 63
  64. RadioButton Nhóm RadioButton thứ 1 chứa trong GroupBox1 Nhóm RadioButton thứ 2 chứa trong GroupBox2 Nguyễn Văn Phong - 2010 64
  65. CheckedListBox ◼ Tương tự như list box nhưng mỗi item sẽ có thêm check box. Properties CheckedItems CheckedIndices SelectedIndexChanged SelectedIndices SelectedValueChanged SelectedIndices MultiColumn Method SelectionMode ClearSelected Items SetSelected Nguyễn Văn Phong - 2010 65
  66. CheckedListBox ◼ Thuộc tính Items lưu trữ danh sách item ◼ Có thể bổ sung vào thời điểm ❑ Design time ❑ Run time Item được check Item được select Nguyễn Văn Phong - 2010 66
  67. CheckedListBox ◼ MultiColumn = true Các item được tổ chức theo nhiều cột Nguyễn Văn Phong - 2010 67
  68. CheckedListBox ◼ Sự kiện SelectedIndexChanged Nguyễn Văn Phong - 2010 68
  69. TrackBar ◼ Cho phép user 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 Properties Minimum Maximum ValueChanged Scroll TickFrequency TickStyle Value SetRange Nguyễn Văn Phong - 2010 69
  70. TrackBar public void AddTrackBar() { TrackBar tb1 = new TrackBar(); Tạo thể hiện tb1.Location = new Point(10, 10); tb1.Size = new Size(250, 50); tb1.Minimum = 0; Thiết lập khoảng: 0 - 100 tb1.Maximum = 100; Số vị trí di chuyển khi dùng tb1.SmallChange = 1; phím mũi tên tb1.LargeChange = 5; Số vị trí di chuyển tb1.TickStyle = TickStyle.BottomRight; khi dùng phím Page Kiểu stick ở bên tb1.TickFrequency = 10; dưới/bên phải track tb1.Value = 10; Controls.Add(tb1); Số khoảng cách giữa } các tick mark Nguyễn Văn Phong - 2010 70
  71. TrackBar ◼ Bổ sung Label hiển thị giá trị của TrackBar Nguyễn Văn Phong - 2010 71
  72. PictureBox & ImageList Nguyễn Văn Phong - 2010 72
  73. PictureBox ◼ 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 Nguyễn Văn Phong - 2010 73
  74. PictureBox 5 pictureBox với các SizeMode tương ứng Nguyễn Văn Phong - 2010 74
  75. ImageList ◼ 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 Nguyễn Văn Phong - 2010 75
  76. ImageList ◼ Các bước sử dụng ImageList ❑ Kéo control ImageList từ ToolBox thả 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 Nguyễn Văn Phong - 2010 76
  77. ImageList ◼ Tạo ImageList Nguyễn Văn Phong - 2010 77
  78. ImageList ◼ Sử dụng ImageList trong ListView listView1 Khai báo ImageList cho ListView Hiển thị dạng small icon Nguyễn Văn Phong - 2010 78
  79. ImageList ◼ Thêm Item Khai báo image cho item qua ImageIndex Nguyễn Văn Phong - 2010 79
  80. ImageList ◼ Demo Mỗi item sẽ có ảnh theo đúng thứ tự ImageIndex được khai báo trong ImageList Nguyễn Văn Phong - 2010 80
  81. NumericUpDown & DomainUpDown Nguyễn Văn Phong - 2010 81
  82. NumericUpDown ◼ Cho phép user chọn các giá trị trong khoảng xác định thông qua ❑ Nút up & down ❑ 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 Nguyễn Văn Phong - 2010 82
  83. NumericUpDown ◼ Đ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 } Nguyễn Văn Phong - 2010 83
  84. NumericUpDown ◼ Demo Tăng giảm giá trị Hiển thị giá trị Hexa Nhập trực tiếp giá trị Nguyễn Văn Phong - 2010 84
  85. DomainUpDown ◼ Cho phép user chọn item trong số danh sách item thông qua ❑ Button Up & Down ❑ Nhập từ bàn phím ◼ Properties ❑ Items: danh sách item ❑ ReadOnly: true 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 Nguyễn Văn Phong - 2010 85
  86. DomainUpDown ◼ Nhập item cho DomainUpDown String Collection Editor Cho phép nhập item Nguyễn Văn Phong - 2010 86
  87. Graphic & RichText Controls Nguyễn Văn Phong - 2010 87
  88. DateTimePicker ◼ 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 ◼ Properties ❑ Format: định dạng hiển thị ◼ long, short, time, custom ❑ CustomFormat: ◼ dd: hiển thị 2 con số của ngày ◼ MM: hiển thị 2 con số của tháng ◼ yyyy: hiển thị 4 con số của năm ◼ (xem thêm MSDN Online) ❑ 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 Nguyễn Văn Phong - 2010 88
  89. DateTimePicker 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); } Nguyễn Văn Phong - 2010 89
  90. DateTimePicker ◼ Demo Định dạng xuất: 'Ngày' dd 'tháng' MM 'năm' yyyy Kích drop down để hiện thị hộp chọn ngày Chọn ngày trong khoảng cho trước Nguyễn Văn Phong - 2010 90
  91. MonthCalendar ◼ Cho phép user 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. ◼ Một số thuộc tính thông dụng ❑ 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 Nguyễn Văn Phong - 2010 91
  92. 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 Nguyễn Văn Phong - 2010 92
  93. Advanced Controls Nguyễn Văn Phong - 2010 93
  94. Timer ◼ 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. Properties Enabled Interval Stop Tick Nguyễn Văn Phong - 2010 94
  95. Timer ◼ Hiển thị giờ hệ thống Hiển thị thời gian Enable sự kiện Tick Khoảng thời gian chờ giữa 2 lần gọi Tick Nguyễn Văn Phong - 2010 95
  96. Timer ◼ Sự kiện Tick Khai báo trình xử lý sự kiện Tick Nguyễn Văn Phong - 2010 96
  97. Timer ◼ 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 Nguyễn Văn Phong - 2010 97
  98. ProgressBar ◼ 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 Nguyễn Văn Phong - 2010 98
  99. ProgressBar ◼ Khai báo thanh tiến độ 0-100, step = 10 Max = 100 Min = 0 Step = 10 Nguyễn Văn Phong - 2010 99
  100. ProgressBar Nguyễn Văn Phong - 2010 100
  101. ProgressBar ◼ 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 Nguyễn Văn Phong - 2010 101
  102. ToolTip ◼ 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 bất kỳ ◼ Khung text chứa nội dung mô tả ý nghĩa của control ◼ Cách sử dụng ❑ Từ ToolBox kéo ToolTip thả vào form ❑ Kích chọn control muốn thêm tooltip ❑ Trong cửa sổ Properties của control sẽ có thuộc tính ToolTip. Thêm text vào thuộc tính này để hiển thị khi tooltip xuất hiện. Nguyễn Văn Phong - 2010 102
  103. ToolTip ◼ Tạo ToolTip Nguyễn Văn Phong - 2010 103
  104. ToolTip ◼ Khai báo Tooltip cho textbox trong Design View Nội dung Tooltip Nguyễn Văn Phong - 2010 104
  105. ToolTip ◼ Khai báo tooltip cho button Nhập nội dung Tooltip cần hiển thị Nguyễn Văn Phong - 2010 105
  106. ToolTip ◼ Khai báo tooltip cho listbox bằng code Nguyễn Văn Phong - 2010 106
  107. ToolTip ◼ Demo ToolTip xuất hiện khi user di chuyển chuột vào vùng control Nguyễn Văn Phong - 2010 107
  108. Mouse Event Nguyễn Văn Phong - 2010 108
  109. 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 ❑ Kích 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) Nguyễn Văn Phong - 2010 109
  110. Mouse Event ◼ Tham số cho sự kiện liên quan đến mouse MouseEventArgs Số lần kích chuột Button được nhấn Tọa độ (x,y) của con trỏ chuột Nguyễn Văn Phong - 2010 110
  111. 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/ Xuất hiện khi button được nhấn/thả và con trỏ MouseUp 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 Nguyễn Văn Phong - 2010 111
  112. 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 Nguyễn Văn Phong - 2010 112
  113. Mouse Event ◼ MouseMove Nguyễn Văn Phong - 2010 113
  114. Mouse Event ◼ Demo Vị trí hiện tại của con trỏ chuột Hiển thị tọa độ hiện tại của con trỏ chuột Nguyễn Văn Phong - 2010 114
  115. Mouse Event ◼ Demo thao tác: kích chuột trái tại một điểm A, giữ chuột trái 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 Nguyễn Văn Phong - 2010 115
  116. 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 Nguyễn Văn Phong - 2010 116
  117. 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 Nguyễn Văn Phong - 2010 117
  118. 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 Nguyễn Văn Phong - 2010 118
  119. Mouse Event Tại sao có hiệu ứng vậy? SV tự cải tiến Nguyễn Văn Phong - 2010 119
  120. Keyboard Event Nguyễn Văn Phong - 2010 120
  121. 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. Nguyễn Văn Phong - 2010 121
  122. Keyboard Event 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 Cho biết 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ý Nguyễn Văn Phong - 2010 122
  123. 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 Nguyễn Văn Phong - 2010 123
  124. Keyboard Event ◼ Keys Enumeration Nguyễn Văn Phong - 2010 124
  125. Keyboard Event ◼ Minh họa các sự kiện: KeyPress, KeyDown, KeyUp ❑ Khi user 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 user 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 ❑ Tạo một form minh họa ❑ Thiết kế trên form có 2 Label: ◼ lblChar: hiển thị ký tự được nhấn trong KeyPress ◼ lblKeyInfo: hiển thị các thông tin của KeyEventArgs khi KeyDown Nguyễn Văn Phong - 2010 125
  126. 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 Nguyễn Văn Phong - 2010 126
  127. Keyboard Event ◼ Bước 2: ❑ Tạo KeyPress Event Handling cho form Nguyễn Văn Phong - 2010 127
  128. Keyboard Event ◼ Bước 3: ❑ Tạo KeyDown Event Handling cho form Nguyễn Văn Phong - 2010 128
  129. Keyboard Event ◼ Demo Nguyễn Văn Phong - 2010 129
  130. Keyboard Event ◼ CT Calculator (BT3) 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: user 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. Nguyễn Văn Phong - 2010 130
  131. 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 Nguyễn Văn Phong - 2010 131
  132. Tóm tắt ◼ Thiết kế layout trên form ❑ Anchor ❑ Dock các control ◼ Các control trên form ❑ Control nhập liệu ❑ Control chọn giá trị ❑ Container control ❑ Component ❑ Advanced control ◼ Mouse event ◼ Keyboard event Nguyễn Văn Phong - 2010 132
  133. Nguyễn Văn Phong - 2010 133