Bài giảng Lập trình Windows: Windows Controls - Nguyễn Văn Phong

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

ppt133 trang | Chia sẻ: phuongt97 | Lượt xem: 594 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Lập trình Windows: Windows Controls - Nguyễn Văn Phong, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Windows ControlsNguyễn Văn Phong1Nội DungTổng quan controlsProperty & layout của controlAnchorDockingCác control thông dụngLabel, textbox, buttonListBox, Combobox, listViewGroupBox, Panel & TabControlCheckBox, RadioButton, CheckedListBox, TrackBarPictureBox, ImageListNumericUpDown, DomainUpDownRichTextBox, DateTimePicker, MonthCalendarAdvanced controlsMouse Event handlingKeyboard event handling2Tổng quan controlsControl là một thành phần cơ bản trên formCó các thành phầnThuộc tínhPhương thứcSự kiệnTất cả các control chứa trong namespace: System.Windows.Forms3Tổng quan controlsMột số thuộc tính của controlText: mô tả text xuất hiện trên controlFocus: phương thức chuyển focus vào controlTabIndex: thứ tự của control nhận focusMặc định được VS.NET thiết lậpEnable: thiết lập trạng thái truy cập của controlVisible: ẩn control trên form, có thể dùng phương thức HideAnchor: Neo giữ control ở vị trí xác địnhCho phép control di chuyển theo vị tríSize: xác nhận kích thước của control4Thuộc tính controlsCommon PropertiesDescriptionBackColorMàu nền của controlBackgroundImageẢnh nền của controlForeColorMàu hiển thị text trên formEnabledXác định khi control trạng thái enableFocusedXác định khi control nhận focusFontFont hiển thị text trên controlTabIndexThứ tự tab của controlTabStopNếu true, user có thể sử dụng tab để select controlTextText hiển thị trên formTextAlignCanh lề text trên controlVisibleXác định hiển thị control5Control Layout - AnchorNoneFixedSingleFixed3DFixedDialogSizableFormBorderStyle6Control Layout - AnchorKhi FormBorderStyle = Sizable, form cho phép thay đổi kích thước khi RuntimeSự bố trí của control cũng thay đổi!Sử dụng thuộc tính AnchorCho phép control phản ứng lại với thao tác resize của formControl có thể thay đổi vị trí tương ứng với việc resize của formControl cố định không thay đổi theo việc resize của formCác trạng thái neoLeft: cố định theo biên tráiRight: cố định theo biên phảiTop: cố định theo biên trênBottom: cố định theo biên dưới7Control Layout - AnchorButton được neo biên tráiButton tự doVị trí tương đối với biên trái không đổiDi chuyển tương ứng theo kích thước mới8Control Layout - AnchorThiết lập Anchor cho controlChọn các biên để neoBiên được chọn neo,màu đậm9Control Layout - AnchorNeo theo bốn phía10Control Layout - DockingCá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 ExplorerTreeView gắn bên tráiListView gắn bên phải11Control Layout - DockingLeftRightBottomNoneFillTop12Control Layout - DockingTextBoxDock = NoneDock = TopDock = FillTextBox.Multiline = TrueDock = Bottom13Label, TextBox, Button14Label, TextBox, ButtonLabelCung cấp chuỗi thông tin chỉ dẫnChỉ đọcĐược định nghĩa bởi lớp LabelDẫn xuất từ ControlTextBoxThuộc lớp TextBoxVùng cho phép user nhập dữ liệuCho phép nhập dạng PasswordButtoncho phép cài đặt 1 hành động.Checkbox và RadioButtonDẫn xuất từ ButtonBase15Label, TextBox, ButtonLabelThuộc tính thường dùngFontFont hiển thị của textTextNội dung text hiển thịTextAlignCanh lề textForeColorMàu textVisibleTrạng thái hiển thị16Label, TextBox, ButtonTextBoxThuộc tính thường dùngAcceptsReturnNếu true: nhấn enter tạo thành dòng mới trong chế độ multilineMultilineNếu true: textbox ở chế độ nhiều dòng, mặc định là falsePasswordCharChỉ hiển thị ký tự đại diện cho textReadOnlyNếu true: textbox hiển thị nền xám, và ko cho phép nhập liệu, mặc định là falseScrollBarsThanh cuộn cho chế độ multilineEvent thường dùngTextChangedKí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 view17Label, TextBox, ButtonButtonThuộc tính thường dùngTextChuỗi hiển thị trên bề mặt buttonEvent thường dùngClickKí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.18Label, TextBox, ButtonDemo TextBoxChuyển thành chữ hoaDouble click vào textbox để tạo event handler cho event TextChanged19Label, TextBox, ButtonChỉ cho nhập sốSự kiện KeyPressSự kiện phát sinh khi textbox nhận focus và user nhấn 1 phím20ListBox & ComboBox21ListBox & ComboBoxListBoxCung cấp một danh sách các item cho phép user chọnListBox cho phép hiển thị scroll nếu các item vượt quá vùng thể hiện của ListBoxItems MultiColumn SelectedIndex SelectedItem ListBoxSelectedItems Sorted Text Properties22ListBox & ComboBoxMethod & EventListBoxClearSelected FindString GetSelected SetSelected SelectedIndexChanged SelectedValueChanged MethodEvent23ListBox & ComboBoxThuộc tính Items cho phép thêm item vào ListBoxDanh sách itemCho phép thêm item trong màn hình thiết kế form24ListBox & ComboBoxListBox hiển thị dạng Multi ColumnHiển thị nhiều cột25ListBox & ComboBoxDemo ListBoxKiể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 box26ListBox & ComboBoxSự kiện SelectedIndexChangedSelectedIndexChangedMỗi khi kích chọn vào item trong listbox  sẽ xóa item được chọn tương ứng27ListBox & ComboBoxComboBoxKết hợp TextBox với một danh sách dạng drop downCho phép user kích chọn item trong danh sách drop downComboBoxItems DropDownStyle Sorted Text AutoCompleteMode MaxDropDownItems DropDownHeight 28ListBox & ComboBoxDropDownStyleSimpleDropDownDropDownList29ListBox & ComboBoxBổ sung item trong màn hình design view30ListBox & ComboBoxMỗi khi kích chọn một item  hiển thị item được chọn trên MessageBox31ListBox & ComboBoxTính năng AutoCompleteGõ “Ng”AutoCompleteModeAutoCompleteSourceAutoComplete32ListView33List ViewDạng control phổ biến hiện thị một danh sách itemCác item có thể có các item con gọi là subitemWindows Explorer hiển thị thông tin thư mục, tập tinCó thể hiển thị thông tin theo nhiều dạng thông qua thuộc tính ViewXem dạng chi tiết thông tinXem dạng icon nhỏXem dạng icon lớnXem dạng tóm tắtLớp ListView dẫn xuất từ System.Windows.Forms.Control34List ViewPropertiesFullRowSelect ViewMultiSelect Sorting ListViewColumnsItemsSmallImageListLargeImageListGridLines35List ViewCác dạng thể hiện của ListViewDetailsSmall IconsLarge IconsListTileListView36List ViewLarge IconsMỗi item xuất hiện với 1 icon kích thước lớn và một label bên dưới37List ViewMỗi item xuất hiện với icon nhỏ và một label bên phảiSmall Icons38List ViewMỗ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ộtList39List ViewMỗ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à subitemTile40List ViewMỗ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ếtDetail41List ViewTạo các cột cho ListView – Details quaCử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); Code42List ViewDialog soạn thảo cột43List ViewThêm các item vào ListViewThêm item trong màn hình thiết kế formThêm item thông qua codeCác lớp định nghĩa ItemSystem.Windows.Forms.ListViewItemMỗi item trong ListView có các item phụ gọi là subitemLớp ListViewItem.ListViewSubItem định nghĩa các subitem của ListViewLớp ListViewSubItem là inner class của ListViewItemColumnHeader1ColumnHeader2ColumnHeader3Subitem[0]Subitem[1]Subitem[2]item 144ListViewMinh họa thêm item qua codeListViewItem 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 itemThêm item vào danh sách items của ListView45ListViewSự kiện SelectedIndexChanged46GroupBox, Panel & TabControl47GroupBox & PanelBố trí controls trên GUIGroupBox Hiển thị một khung bao quanh một nhóm controlCó thể hiển thị một tiêu đềThuộc tính TextKhi xóa một GroupBox thì các control chứa trong nó bị xóa theoLớp GroupBox kế thừa từ System.Windows.Forms.Control Panel Chứa nhóm các controlKhông có captionCó thanh cuộn (scrollbar)Xem nhiều control khi kích thước panel giới hạn48GroupBox & Panel49GroupBox & PanelMinh họa GroupBoxgroupBox1 chứa 2 controltextBox1 và button1textBox2 và button2 chứa trong Controls của Form50GroupBox & PanelMinh họa Panelscroll51TabControlDạ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ấtMỗ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 pageKí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 formCác control có cùng nhóm chức năng sẽ được tổ chức trong một tab (page)52TabControlTabControl có thuộc tính TabPagesChứa các đối tượng TabPageTabControlTabPageTabPage53ButtonsTabControlThuộc tính AppearanceNormalFlatButton54TabControlThuộc tính, phương thức & sự kiện thường dùngMultiline SelectedIndex SelectedTab TabCountTabPagesSelectedIndexChanged TabControlEventPropertiesMethodSelectTabDeselectTab55TabControlThêm/Xóa TabPageKích chuột phảiThêm/Xóa TabPage56TabControlChỉnh sửa các TabPageChọn thuộc tính TabPages của TabControlSử dụng màn hình TabPage Collection Editor để chỉnh sửa57TabControlBổ sung Control vào TabControlChọn TabPage cần thêm controlKéo control từ ToolBox thả vào TabPage đã chọnChọn TabPage cần thêm58TabControlSử dụng code để thêm các TabPage vào TabControlprivate 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); }59CheckBox, CheckedListBoxRadioButton & TrackBar60CheckBoxControl đưa ra một giá trị cho trước và user có thểChọn giá trị khi Checked = trueKhông chọn giá trị: Checked = falseLớp đại diện CheckBoxAppearance Checked CheckedChanged ThreeStateText Properties61CheckBoxThreeState = true : cho phép thiết lập 3 trạng thái:Checkstate = Indeterminate: không xác địnhCheckState= Checked: chọnCheckState= Unchecked: không chọnChưa chọn62RadioButtonCho phép user chọn một option trong số nhóm optionKhi user chọn 1 option thì tự động option được chọn trước sẽ uncheckCá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.Checked CheckedChanged TextAppearance 63RadioButtonNhóm RadioButton thứ 2 chứa trong GroupBox2Nhóm RadioButton thứ 1 chứa trong GroupBox164CheckedListBoxTương tự như list box nhưng mỗi item sẽ có thêm check box.CheckedItems CheckedIndices SelectedIndices SelectedIndices MultiColumnSelectionMode PropertiesMethodClearSelected SetSelected SelectedIndexChanged SelectedValueChanged Items65CheckedListBoxThuộc tính Items lưu trữ danh sách itemCó thể bổ sung vào thời điểmDesign timeRun timeItem được checkItem được select66CheckedListBoxMultiColumn = trueCác item được tổ chức theo nhiều cột67CheckedListBoxSự kiện SelectedIndexChanged68TrackBarCho phép user thiết lập giá trị trong khoảng cố định cho trướcThao tác qua thiết bị chuột hoặc bàn phímPropertiesMethodsMaximum Minimum TickFrequency TickStyle Value SetRange Scroll ValueChanged 69TrackBarpublic 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ệnThiết lập khoảng: 0 - 100Số vị trí di chuyển khi dùng phím mũi tênSố vị trí di chuyển khi dùng phím PageKiểu stick ở bên dưới/bên phải trackSố khoảng cách giữa các tick mark70TrackBarBổ sung Label hiển thị giá trị của TrackBar71PictureBox & ImageList72PictureBoxSử 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ínhImage: ảnh cần hiển thịSizeMode: NormalStretchImageAutoSizeCenterImageZoom73PictureBox5 pictureBox với các SizeMode tương ứng74ImageListCung cấp tập hợp những đối tượng image cho các control khác sử dụngListViewTreeViewCác thuộc tính thường dùngColorDepth: độ sâu của màuImages: trả về ImageList.ImageCollection ImageSize: kích thước ảnhTransparentColor: xác định màu là transparent75ImageListCác bước sử dụng ImageListKéo control ImageList từ ToolBox thả vào FormThiết lập kích thước của các ảnh: ImageSizeBổ sung các ảnh vào ImageList qua thuộc tính ImagesSử dụng ImageList cho các controlKhai báo nguồn image là image list vừa tạo cho controlThường là thuộc tính ImageListThiết lập các item/node với các ImageIndex tương ứngViệc thiết lập có thể ở màn hình design view hoặc code view76ImageListTạo ImageList77ImageListSử dụng ImageList trong ListViewHiển thị dạng small iconKhai báo ImageList cho ListViewlistView178ImageListThêm ItemKhai báo image cho item qua ImageIndex79ImageListDemoMỗi item sẽ có ảnh theo đúng thứ tự ImageIndex được khai báo trong ImageList80NumericUpDown & DomainUpDown81NumericUpDownCho phép user chọn các giá trị trong khoảng xác định thông qua Nút up & downNhập trực tiếp giá trịCác thuộc tínhMinimumMaximumValueIncrementSự kiệnValueChangedPhương thứcDownButtonUpButton82NumericUpDownĐoạn code thêm control NumericUpDownpublic 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} 83NumericUpDownDemoNhập trực tiếp giá trịTăng giảm giá trịHiển thị giá trị Hexa84DomainUpDownCho phép user chọn item trong số danh sách item thông quaButton Up & DownNhập từ bàn phímPropertiesItems: danh sách itemReadOnly: true chỉ cho phép thay đổi giá trị qua Up & DownSelectedIndex: chỉ mục của item đang chọnSelectedItem: item đang được chọnSorted: sắp danh sách itemText: text đang hiển thị trên DomainUpDown.EventSelectedItemChanged85DomainUpDownNhập item cho DomainUpDownString Collection EditorCho phép nhập item86Graphic & RichText Controls87DateTimePickerCho phép chọn ngày trong khoảng xác định thông qua giao diện đồ họa dạng calendarKết hợp ComboBox và MonthCalendarPropertiesFormat: định dạng hiển thịlong, short, time, customCustomFormat:dd: hiển thị 2 con số của ngàyMM: hiển thị 2 con số của thángyyyy: hiển thị 4 con số của năm(xem thêm MSDN Online)MaxDate: giá trị ngày lớn nhấtMinDate: giá trị ngày nhỏ nhấtValue: giá trị ngày hiện tại đang chọn88DateTimePickerprivate 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); } 89DateTimePickerDemoKích drop down để hiện thị hộp chọn ngàyChọn ngày trong khoảng cho trướcĐịnh dạng xuất: 'Ngày' dd 'tháng' MM 'năm' yyyy90MonthCalendarCho 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ụngMaxDate, MinDateSelectionStart: ngày bắt đầu chọnSelectionEnd: ngày kết thúcSinh viên tự tìm hiểu thêm91RichTextBoxChứ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 RichTextBoxSinh viên tự tìm hiểu thêm92Advanced Controls93TimerBộ đị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.PropertiesMethodsEnabled Interval Start Stop Tick 94TimerHiển thị giờ hệ thốngEnable sự kiện TickKhoảng thời gian chờ giữa 2 lần gọi TickHiển thị thời gian95TimerSự kiện TickKhai báo trình xử lý sự kiện Tick96TimerDemoMỗ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 Label97ProgressBarHiển thị tiến độ thực hiện của một công việc nào đóCác thuộc tínhMinimum: giá trị nhỏ nhấtMaximum: giá trị lớn nhấtStep: số bước tăng khi gọi hàm PerformStepValue: giá trị hiện tạiStyle: kiểu của progress barPhương thứcPerformStep(): tăng thêm stepIncrement(int value): tăng vị trí hiện tại của tiến độ với giá trị xác định98ProgressBarKhai báo thanh tiến độ 0-100, step = 10Max = 100Min = 0Step = 1099ProgressBar100ProgressBarDemoThể 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 label101ToolTipCung 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ụngTừ ToolBox kéo ToolTip thả vào formKích chọn control muốn thêm tooltipTrong 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.102ToolTip Tạo ToolTip103ToolTipKhai báo Tooltip cho textbox trong Design ViewNội dung Tooltip104ToolTipKhai báo tooltip cho buttonNhập nội dung Tooltip cần hiển thị105ToolTipKhai báo tooltip cho listbox bằng code106ToolTipDemoToolTip xuất hiện khi user di chuyển chuột vào vùng control 107Mouse Event108Mouse EventMouse là thiết bị tương tác thông dụng trên GUIMột số các thao tác phát sinh từ mouseDi chuyểnKí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 ứngLớ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)109Mouse EventTham số cho sự kiện liên quan đến mouseTọa độ (x,y) của con trỏ chuộtButton được nhấnSố lần kích chuộtMouseEventArgs110Mouse EventSự kiện chuột với tham số kiểu EventArgsMouseEnterXuất hiện khi con trỏ chuột đi vào vùng biên của controlMouseLeaveXuất hiện khi con trỏ chuột rời khỏi biên của controlSự kiện chuột với tham số kiểu MouseEventArgsMouseDown/MouseUpXuất hiện khi button được nhấn/thả và con trỏ chuột đang ở trong vùng biên của controlMouseMoveXuất hiện khi chuột di chuyển và con trỏ chuột ở trong vùng biên của control111Mouse EventThuộc tính của lớp MouseEventArgsButtonButton được nhấn {Left, Right, Middle, none} có kiểu là MouseButtonsClicksSố lần button được nhấnXTọa độ x của con trỏ chuột trong controlYTọa độ y của con trỏ chuột trong control112Mouse EventMouseMove113Mouse EventDemoHiển thị tọa độ hiện tại của con trỏ chuộtVị trí hiện tại của con trỏ chuột114Mouse EventDemo 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 đầuMouseMoveKiể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ại115Mouse EventBước 1:Tạo biến lưu trữ điểm A khi user kích chuột tráiBiến pA có kiểu Point là biến thành viên của Form1Lớp Form1Biến pA lưu giữ tọa độ khi chuột trái được click116Mouse EventBước 2Khai báo xử lý sự kiện MouseDown trong Form1Trong cửa sổ event của Form1, kích đúp vào sự kiện MouseDownLưu lại điểm được nhấn chuột117Mouse EventBước 3Cài đặt xử lý sự kiện MouseMoveKiểm tra nếu LeftButton được nhấnVẽ đường thẳng từ pA đến vị trí hiện tại118Mouse EventTại sao có hiệu ứng vậy? SV tự cải tiến119Keyboard Event120Keyboard EventPhát sinh khi một phím được nhấn hoặc thảCó 3 sự kiệnKeyPressKeyUpKeyDownKeyPress phát sinh kèm theo với mã ASCII của phím được nhấnKeyPress 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.121Keyboard EventSự kiện với tham số kiểu KeyEventArgsKeyDownPhát sinh khi phím được nhấnKeyUpPhát sinh khi phím được thảSự kiện với tham số kiểu KeyPressEventArgsKeyPressKhởi tạo khi phím được nhấnThuộc tính của lớp KeyPressEventArgsKeyCharChứa ký tự ASCII của phím được nhấnHandledCho biết sự kiện KeyPress có được xử lý chưaThuộc tính của lớp KeyEventArgsAlt, Control, ShiftTrạng thái các phím bổ sungHandledCho biết sự kiện đã xử lý122Keyboard EventThuộc tính của lớp KeyEventArgs (tt)KeyCodeTrả về mã ký tự được định nghĩa trong Keys enumerationKeyDataChứa mã ký tự với thông tin phím bổ sungKeyValueTrả về số int, đây chính là mã Windows Virtual Key CodeModifierTrả về giá trị của phím bổ sung123Keyboard EventKeys Enumeration124Keyboard EventMinh họa các sự kiện: KeyPress, KeyDown, KeyUpKhi user nhấn một phímBắt sự kiện KeyPress: xuất ra phím được nhấnBắt sự kiện KeyDown: xuất ra các tham số trong KeyEventArgsKhi user thả phímXóa các thông tin mô tả phím được nhấn trong các labelCách thực hiệnTạo một form minh họaThiết kế trên form có 2 Label: lblChar: hiển thị ký tự được nhấn trong KeyPresslblKeyInfo: hiển thị các thông tin của KeyEventArgs khi KeyDown125Keyboard EventBước 1: tạo Windows Form như hình mô tảLabel chứa ký tự được nhấn trong sự kiện KeyPressLabel chứa thông tin mã ký tự được nhấn trong sự kiện KeyDown126Keyboard EventBước 2:Tạo KeyPress Event Handling cho form127Keyboard EventBước 3:Tạo KeyDown Event Handling cho form128Keyboard EventDemo129Keyboard EventCT Calculator (BT3) mở rộng cho phép xử lý các phím Form nhận xử lý thông điệp KeyDownXác định các phím tương ứng rồi gọi sự kiện click của buttonVD: user gõ phím 1, tương tự như button “1” được nhấnCách thực hiệnKhai báo trình xử lý sự kiện KeyDown cho Form chínhThiết lập thuộc tính KeyPreview cho Form để nhận sự kiện bàn phím.130Keyboard EventViết phần xử lý cho sự kiện KeyDownXá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ấnPhím ‘+' được nhấn131Tóm tắtThiết kế layout trên formAnchorDock các controlCác control trên formControl nhập liệuControl chọn giá trịContainer controlComponentAdvanced controlMouse eventKeyboard event132Q&A133

Các file đính kèm theo tài liệu này:

  • pptbai_giang_lap_trinh_windows_windows_controls_nguyen_van_phon.ppt
Tài liệu liên quan