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
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
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:
- bai_giang_lap_trinh_tren_moi_truong_windows_chuong_3_dieu_kh.pdf