Bài giảng Các điều kiển cơ bản

Một số điều kiển cơ bản Form: Đối tượng cửa sổ của chương trình chứa các đối tượng khác. Label: Đối tượng dùng để hiển thị văn bản và hình ảnh (người dùng không sửa được). TextBox: Đối tượng dùng để hiển thị và nhập dữ liệu từ bàn phím. Button: Là nút ấn cho phép Click nó để thực hiện một chức năng. CheckBox: Đối tượng cho phép chọn hoặc không chọn. ListBox: Đối tượng cho phép xem và chọn dữ liệu từ các dòng. ComboBox: Đối tượng cho phép chọn dữ liệu từ các dòng. GroupBox: Đối tượng chứa các đối tượng khác. Panel: Đối tượng chứa các đối tượng khác.

doc42 trang | Chia sẻ: haohao89 | Lượt xem: 1805 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Bài giảng Các điều kiển cơ bản, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 2 Các điều kiển cơ bản Nội dung Giới thiệu Form Label TextBox Button Các thuộc tính chung Các sự kiện chung Điều khiển sự kiện bàn phím Điều khiển sự kiện chuột Các điều khiển cơ bản khác Giới thiệu Một số điều kiển cơ bản Form: Đối tượng cửa sổ của chương trình chứa các đối tượng khác. Label: Đối tượng dùng để hiển thị văn bản và hình ảnh (người dùng không sửa được). TextBox: Đối tượng dùng để hiển thị và nhập dữ liệu từ bàn phím. Button: Là nút ấn cho phép Click nó để thực hiện một chức năng. CheckBox: Đối tượng cho phép chọn hoặc không chọn. ListBox: Đối tượng cho phép xem và chọn dữ liệu từ các dòng. ComboBox: Đối tượng cho phép chọn dữ liệu từ các dòng. GroupBox: Đối tượng chứa các đối tượng khác. Panel: Đối tượng chứa các đối tượng khác. Form Dùng để tạo giao diện cho chương trình Thêm một Form mới Chọn Project ->Add Windows Form Chọn Windows Form -> gõ tên Form -> Add Các điều khiển của Form Là các thành phần đồ hoạ như Label, TextBox,... Mỗi điều khiển tạo ra các đối tượng cùng lớp Các đối tượng có các thuộc tính, các sự kiện và các phương thức riêng. Properties: Các thuộc tính mô tả đối tượng. Methods: Các phương thức thực hiện các chức năng của đối tượng. Events: Các sự kiện sinh ra bởi sự chuyển động của bàn phím và con chuột, chi tiết do người lập trình viết. Các thuộc tính thường dùng AcceptButton: Nút được click khi ấn phím Enter CancelButton: Nút được click khi ấn phím Esc BackgroundImage: Ảnh nền của Form Font: Font hiển thị của Form và Font ngầm định của các đối tượng của Form. FormBorderStyle: Kiểu đường viền của Form None: Form không có đường viền Fix...: Cố định kích thước khi chạy Form Sizeable: Có thể thay đổi kích thước Form ForeColor: Màu chữ của Form và màu chữ của các đối tượng của Form. Text: Dòng văn bản hiển thị trên tiêu đề Form MaximizeBox: Có/không nút phóng to MinimizeBox: Có/không nút thu nhỏ StartPosition: Ví trí bắt đầu khi chạy Form CenterScreen: Nằm giữa màn hình WindowState: Xác định trạng thái ban đầu Form Close: Đóng Form và giải phóng các tài nguyên. Form đã đóng ko thể mở lại. Hide: Ẩn Form và không giải phóng tài nguyên của Form. Show: Hiển thị một Form đã ẩn. Load: Xảy ra khi chạy Form (ngầm định khi nháy đúp chuột trong chế độ thiết kế). FormClosing: Xảy ra khi đóng Form. Ví dụ đặt các thuộc tính của Form Tạo một Form mới Gõ dòng tiêu đề của Form Đặt Form ở chế độ FixDialog Cất nút phóng to Cất nút thu nhỏ Cho Form nằm giữa màn hình Chèn một ảnh làm nền của Form Chạy Form Label Đối tượng hiển thị văn bản kết hợp hình ảnh, Ko sửa được văn bản hiển thị Các thuộc tính thường dùng AutoSize: Tự thay đổi kích thước của đối tượng Fonts: Font chữ của đối tượng Label ForeColor: Màu chữ của đối tượng Image: Ảnh của đối tượng Text: Văn bản xuất hiện trên đối tượng. TextAlign: Lề của văn bản. TextBox Đối tượng dùng để nhập dữ liệu từ bàn phím Các thuộc tính thường dùng Enabled: Có/không cho phép thao tác đối tượng Multiline: Có/không cho phép nhập dữ liệu nhiều dòng (mặc định là Ko) PasswordChar: Nhập ký tự làm mật khẩu ReadOnly: Có/không cho phép sửa dữ liệu của đối tượng (mặc định là có) Text: Văn bản nhập (hiển thị) của đối tượng. Các sự kiện thường dùng TextChanged: Xảy ra khi nhập hoặc xoá các ký tự (ngầm định khi nháy đúp chuột trong chế độ thiết kế) KeyDown: Xảy ra khi ấn một phím bất kỳ trên đối tượng. KeyUp: Xảy ra khi thả một phím ấn trên đối tượng. Chú ý: Dữ liệu nhập vào TextBox là văn bản do đó nếu thực hiện các phép toán số học, logic thì cần chuyển sang kiểu số. Button Đối tượng nút ấn cho phép thực hiện một chức năng Có thể hiển thị hình ảnh kết hợp với văn bản Các thuộc tính thường dùng Text: Văn bản hiển thị trên đối tượng Image: Hình ảnh hiển thị trên đối tượng Các sự kiện thường dùng Click: Xảy ra khi nhấn con trỏ chuột hoặc gõ Enter trên đối tượng (ngầm định khi nháy đúp chuột trong chế độ thiết kế). Ví dụ Giải phương trình bậc nhất Nhập hệ số a, hệ số b Chọn nút Kiểm tra dữ liệu nhập? Nếu không phải là số? Chuyển thành số a, b ? Nếu a = 0 Nếu b = 0 -> Vô số nghiêm Nếu b != 0 -> Vô nghiệm Nếu a !=0 -> x = -b/a Chuyển dữ liệu từ xâu ký tự sang số Chuyển không kiểm tra dữ liệu Sử dụng hàm Convert: = Convert.ToDouble(str) double a = Convert.ToDouble(“123.45”); Chuyển có kiểm tra dữ liệu Sử dụng hàm TryParse của kiểu dữ liệu: bool IsNumber = double.TryParse(str, out num) IsNumber = true nếu đổi được IsNumber = false nếu không đổi được Chuyển dữ liệu từ số sang xâu Sử dụng hàm Convert = Convert.ToString(num) string st = Convert.ToString(123); Sử dụng hàm ToString() của đối tượng .Tostring() int a =2; string s = a.ToString(); Hàm Message Dùng để hiển thị một thông báo Dùng để xác nhận một hành động //hien thi thong bao – dang ham 7 co 4 tham so MessageBox.Show("Giá trị nhập vào không phải là số !", "Thông báo...", MessageBoxButtons.OK, MessageBoxIcon.Information); //Xac nhan hanh dong – dang ham 7 hoac dang ham 9 DialogResult myDialog; myDialog = MessageBox.Show("Chắc chắn xoá dữ liệu không ?", "Thông báo...", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (myDialog == DialogResult.No) return; Các thuộc tính chung Các thuộc tính thường dùng BackColor: Màu nền của đối tượng. BackgroundImage: Ảnh nền của đối tượng Cursor: Kiểu con trỏ chuột khi đưa con trỏ chuột vào đối tượng Enabled: Có/không cho phép thao tác với đối tượng Font: Font chữ của đối tượng ForeColor: Màu chữ của đối tượng TabIndex: Thứ tự ấn phím Tab để chuyển con trỏ đến đối tượng, Chọn biểu tượng Text: Dòng văn bản hiển thị trên đối tượng TextAlign: Lề của dòng văn bản hiển thị trên đối tượng Visible: Ần/hiện đối tượng Anchor: Neo đối tượng so với các cạnh của đối tượng chứa Dock: Cố định đối tượng trong đối tượng chứa Location: Ví trí của đối tượng so với đối tượng chứa Ví dụ về thuộc tính Anchor và Dock Focus: Chuyển con trỏ đến đối tượng Hide: Ẩn đối tượng Show: Hiển thị đối tượng ẩn Các sự kiện chung Sự kiện của Form KeyDown KeyUp KeyPress MouseDown MouseUp Các sự kiện thường dùng KeyDown: Xảy ra khi một phím được ấn trên đối tượng. KeyUp: Xẩy ra khi một phím được thả trên đối tượng KeyEventArg: Tham số cho sự kiện KeyDown và KeyUp. KeyPress: Xảy ra khi ấn và thả một phím trên đối tượng. KeyPressEventArg: Tham số cho sự kiện KeyPress KeyPressEventArg: Là tham số của sự kiện KeyPress KeyChar: Trả về ký tự của phím được ấn Alt: Có/không phím Alt đã được ấn Control: Có/không phím Control đã được ấn. KeyEventArgs: Là tham số của các sự kiện KeyDown và KeyUp. Shift: Có hay không phím Shift đã được ấn. KeyCode: Trả về phím được ấn. KeyValue: Trả về mã của phím được ấn Ví dụ Xây dựng Form cho phép gõ phím Enter hoặc các phím mủi tên để di chuyển con trỏ giữa các TextBox private void textBox2_KeyDown(object sender, KeyEventArgs e) { if ((e.KeyValue == 13) || (e.KeyValue == 40)) textBox3.Focus(); if (e.KeyValue == 38) textBox1.Focus(); } Các sự kiện chuột Các sự kiện thường dùng MouseEnter: Xảy ra khi đưa con trỏ chuột vào vùng của đối tượng. MouseLeave: Xảy ra khi đưa con trỏ chuột ra khỏi vùng của đối tượng. MouseDown: Xảy ra khi ấn nút chuột trong khi con trỏ chuột đang nằm trong vùng của đối tượng. MouseUp: Xảy ra khi thả nút chuột trong khi con trỏ chuột đang nằm trong vùng của đối tượng. MouseMove: Xảy ra khi di chuyển con trỏ chuột trong vùng của đối tượng. MouseEventArg: Là tham số của các sự kiện MouseUp, MouseDown, và MouseMove Button: Nút chuột đã ấn (left, right, middle or none). Clicks: Số lần nút chuột được ấn. X: Toạ độ tương đối x của con trỏ chuột. Y: Toạ độ tương đối y của con trỏ chuột. Bài tập: Viết chương trình hiển thị toạ độ Viết CT nhập vào 3 cạnh của 1 tam giác, tính diện tích và chu vi. GroupBox Đối tượng dùng để chứa các đối tượng khác Mỗi đối tượng có tiêu đề Thuộc tính thường dùng Text: Văn bản hiển thị trên tieu đề GroupBox Panel Đối tượng dùng để chứa các đối tượng khác Mỗi đối tượng không tiêu đề Thuộc tính thường dùng BorderStyle: Đường viền của đối tượng (ngầm định là None) CheckBox Đối tượng cho phép chọn/không chọn giá trị, cho phép chọn đồng thời nhiều đối tượng Các thuộc tính thường dùng Checked: Có/không đối tượng được chọn Text: Văn bản hiển thị trên đối tượng Các sự kiện thường dùng CheckedChanged: Xảy ra khi chọn/không chọn đối tượng (ngầm định khi nháy đúp chuột trong chế độ thiét kế) RadioButton Cho phép chọn/ko chọn giá trị, cho phép chọn 1 đối tượng ở một thời điểm. Để chọn nhiều đối tượng phải đặt các điều khiển trong GroupBox hoặc Panel Các thuộc tính thường dùng Checked: Có/ko đối tượng được chọn Text: Văn bản hiển thị trên đối tượng Các sự kiện thường dùng Click: Xẩy ra khi đối tượng được click. CheckedChanged: Xảy ra khi chọn/ không chọn đối tượng (ngầm định khi nháy đúp chuột trong chế độ thiết kế). PictureBox Đối tượng dùng để hiển thị hình ảnh (Bitmap, GIF, JPEG, Metafile, Icon) Các thuộc tính thường dùng Image: Ảnh hiển thị trong PictureBox. SizeMode: Chế độ hiển thị ảnh Normal:Đặt ảnh ở góc trên bên trái của đối tượng CenterImage: Đặt ảnh ở giữa đối tượng StretchImage: Thay đổi kích thước ảnh đúng với kích thước đối tượng in PictureBox. AutoSize: Thay đổi kích thước đối tượng PictureBox đúng với kích thước ảnh. Chương 3 Các điều kiển nâng cao Nội dung ListBox CheckedListBox ComboBox TabControl Menu Toolbar MDI Windows TreeView ListView ListBox Cho phép xem và chọn các dòng dữ liệu Các thuộc tính thường dùng Items: Mảng các dòng trong ListBox. Items[0] = “Cat” Items[1] = “Mouse” MultiColumn: Có/không chia ListBox thành nhiều cột. SelectedIndex: Trả về dòng hiện thời được chọn Nếu chọn nhiều dòng thì trả về 1 giá trị tuỳ ý của các dòng được chọn. Nếu không chọn thì trả về giá trị -1. SelectedIndices: Trả về một mảng các chỉ số của các dòng được chọn. SelectedItem: Trả về giá trị dòng được chọn. SelectedItems: Trả về một mảng giá trị các dòng được chọn. Sorted: Có/Không sắp xếp dữ liệu trong ListBox. Ngầm định là False. SelectionMode: Xác định số lượng dòng được chọn của ListBox. one: Một dòng Multi: Nhiều dòng GetSelected(index): Trả về True nếu dòng Index được chọn, ngược lại trả vềfalse. Add: Thêm một dòng vào ListBox listBox1.Items.Add(“Cat”); listtBox1.Items.Add(“Mouse”); RemoveAt(row):Xoá dòng ở vị trí row listBox1.Items.RemoveAt(row); Clear: Xoá tất cả các dòng listBox1.Items.Clear(); Sự kiện thường dùng SelectedIndexChanged: Xảy ra khi chọn một dòng. Ngầm định khi nháy đúp ở chế độ thiết kế. Ví dụ Xây dựng Form private voidbtnAdd_Click(object sender, EventArgs e) { listBox1.Items.Add(txtInput.Text); txtInput.Clear(); } private voidbtnRemove_Click(object sender, EventArgs e) { int row=listBox1.SelectedIndex; if (row != -1) listBox1.Items.RemoveAt(row); } private voidbtnClear_Click(object sender, EventArgs e) { listBox1.Items.Clear(); } Bài tập Xây dựng Form cho phép di chuyển các dòng giữa 2 ListBox CheckedListBoxe Là sự mở rộng của ListBox bằng cách thêm CheckBox ở phía bên trái mỗi dòng ->Có thể chọn các dòng Các thuộc tính thường dùng CheckedItems: Mảng các giá trị của dòng được đánh dấu Check. CheckedIndices: Mảng các chỉ số dòng được đánh dấu Check. Phương thức thường dùng GetItemChecked(index): Trả về true nếu dòng được chọn. Sự kiện thường dùng ItemCheck: Xảy ra khi dòng được checked hoặc unchecked. Ví dụ Xây dựng Form khi đánh dấu check thì dòng được đưa sang ListBox bên phải, khi bỏ dấu Check thì xoá dòng trong ListBox bên phải private void myCheckedListBox_Load(objectsender,EventArgs e) { checkedListBox1.Items.Add(“C++ HTP”); } private void checkedListBox1_ItemCheck(objectsender, ItemCheckEventArgse) { stringitem = checkedListBox1.SelectedItem.ToString(); if( e.NewValue == CheckState.Checked) { listBox1.Items.Add(item); } else { listBox1.Items.Remove(item); } } Bài tập Xây dựng form cho phép đánh dấu và chuyển các dòng giữa 2 CheckedListBox Sự kiện cho nút Add của CheckedListBox private void btnAdd_Click(objectsender, EventArgse) { for(inti = 0; i < checkedListBox1.Items.Count -1; i++) { if(checkedListBox1.GetItemChecked(i) == true) { // Adds Item i to checkedListBox2 stringitem = checkedListBox1.Items[i].ToString(); checkedListBox2.Items.Add(item); // Removes Item i at checkedListBox1 checkedListBox1.Items.RemoveAt(i); } } } ComboBox Là sự kết hợp của TextBox và ListBox Các thuộc tính thường dùng DropDownStyle: Xác định kiểu của ComboBox. Simple: Chọn hoặcgõ giá trị DropDown(ngầm định): Chọn hoặcgõ giá trị DropDownList: Chỉ cho phép chọn giá trị. Items: Mảng các dòng trong ComboBox SelectedIndex: Chỉ số dòng được chọn. Nếu không chọn có giá trị -1. SelectedItem: Giá trị dòng được chọn. Sorted: Có/Không sắp xếp dữ liệu trong ComboBox. Ngầm định làfalse. Sự kiện thường dùng SelectedIndexChanged: Xảy ra khi chọn 1 dòng. Các phương thức thường dùng Add: Thêm một dòng vào ComboBox comboBox1.Items.Add(“Cat”); comboBox1.Items.Add(“Mouse”); RemoveAt(row): Xoá dòng ở vị trí row comboBox1.Items.RemoveAt(row); Clear: Xoá tất cả các dòng trong ComboBox comboBox1.Items.Clear(); Ví dụ Xây dựng Form để lấy Font của hệ thống private voidComboBox_Load(objectsender, EventArgse) { FontFamily[] ff = FontFamily.Families; for(inti = 0; i <ff.Length; i++) cboFont.Items.Add(ff[i].Name); for(int i = 8; i <= 72; i++) cboSize.Items.Add(i); } private void cboFont_SelectedIndexChanged(objectsender,EventArgse) { if(cboFont.Text.Trim() == "") return; lbDisplay.Font = new Font(cboFont.Text,lbDisplay.Font.Size); } private void cboSize_SelectedIndexChanged(objectsender,EventArgse) { if(cboSize.Text.Trim() == "") return; lbDisplay.Font =newFont(lbDisplay.Font.Name,(float)Convert.ToDouble(cboSize.Text)); } Menu Dùng để nhóm các lệnh cùng nhau Menu có thể chứa Menu ngang Menu dọc Menu con Các biểu tượng Các phím nóng Các đường phân cách …. Xây dựng menu Kéo biểu tượng MenuStrip vào Form Gõ các dòng cho menu Đặt tên cho các dòng của menu Chọn cửa sổ Properties và đặt thuộc tính Name Tên menu đặt bằng tiền tố mnu (ví dụ: mnuFile, mnuEdit) Chèn hình ảnh cho các dòng của menu Nháy chuột phải và chọn Set Image Chọn Local Resource -> Import ->chọn hình ảnh Đặt phím nóng cho các dòng của menu Chọn cửa sổ Properties và đặt thuộc tính ShortCutKey Các thuộc tính thường dùng Name: Tên menu được dùng trong mã lệnh. Checked: Có/Không dòng menu xuất hiện checked. Ngầm định là false. ShortCutKey: Đặt phím nóng cho menu ShowShortcut: Có/Không phím nóng hiển thị trên dòng menu. Ngầm định là true. Text:Xuất hiện trên dòng menu. Sự kiện thường dùng Click: Xảy ra khi một dòng của menu được click chuột hoặc ấn phím nóng. Ngầm định khi nháy đúp chuột trong chế độ thiết kế. Viết lệnh cho dòng của menu gọi một Form = new ; .Show(); .ShowDialog(); Ví dụ: Thiết kế menu Menu ngữ cảnh Menu hiển thị khi nháy chuột phải trên đối tượng của Form hoặc trên Form. Thiết kế menu ngữ cảnh Kéo điều khiển MenuContext vào form Thiết kế các dòng menu ngữ cảnh giống như thiết kế menu Hiển thị menu ngữ cảnh Chọn đối tượng hoặc Form Đặt thuộc tính ContextMenuStripcủa đối tượng được chọn là tên của menu ngữ cảnh. ToolBar ToolBar dùng để chứa các biểu tượng của các chức năng thường được sử dụng trong chương trình. Xây dựng ToolBar Kéo điều khiển ToolStripvào Form Nháy chuột vào biểu tượng phải và chọn đối tượng tạo ToolBar Button: Nút ấn DropDownButton: Nút sổ xuống Separator: Đường phân cách Xây dựng ToolBar Đặt tên cho các nút của ToolBar Chọn cửa sổ Properties và đặt thuộc tính Name Tên TooBar đặt bằng tiền tố tb (ví dụ: tbNew, tbOpen) Chèn hình ảnh cho đối tượng của ToolBar Nháy chuột phải và chọn Set Image Chọn Local Resource -> Import -> chọn hình ảnh Viết mã lệnh Gọi từ menu: .PerformClick() Gọi trực tiếp đối tượng MDI Windows Một ứng dụng MDI cho phép người dùng thao tác với nhiều cửa sổ ở một thời điểm. SDI và MDI Forms Ví dụ MDI Parent và MDI Child Thuộc tính MDI Parent của Form IsMdiContainer: Có/Không một Form là form MDI Parent. Ngầm định là False. ActiveMdiChild: Trả về Form Child đang được kích hoạt. Thuộc tính MDI Child IsMdiChild: Có/Không Form là một MDI child (thuộc tính read-only). MdiParent: Chi ra một MDI parent của Form .MdiParent = this Phương thức thường dùng LayoutMdi: Xác định kiểu hiển thị của Form con trong MDI Form. ArrangeIcons: Sắp xếp các biểu tượng dưới MDI Cascade: Sắp xếp các cửa sổ chồng nhau TileHorizontal: Sắp xếp cửa sổ theo chiều ngang TileVertical: Sắp xếp cửa sổ theo chiều dọc Các kiểu sắp xếp Bài tập Xây dựng một hệ soạn thảo văn bản theo dạng MDI Form. TreeView Hiển thị thông tin theo các nút (node) Các nút cha có các nút con Nút đầu tiên gọi là nút gốc Ấn dấu [+] để mở nút Ấn dấu [-] để thu gọn nút Mỗi nút có hình ảnh kèm theo Các thuộc tính thường dùng CheckBoxes: Có/không xuất hiện các checkbox trên các node. Mặc định là False. Checked: Có/không một Node được check (thuộc tínhCheckBoxesphải được đặt làTrue) ImageList: Chỉ ra danh sách ảnh hiển thị trên các node. ImageList là một mảng các đối tượng ảnh. Tạo danh sách ảnh ImageList bằng cách kéo điều kiển vào Form, nháy chuột phải và chọn Choose Image để thêm các ảnh vào ImageList. Nodes: Mảng các TreeNodes trong TreeView. Nodes.Add: Bổ sung một node vào cây. Nodes.Clear: Xoá toàn bộ các node trên cây. Nodes.Remove: Xoá một node trên cây và các node con của nó. SelectedNode: Node hiện thời được chọn FullPath: Chỉ ra đường dẫn đến node bắt đầu từ node gốc. SelectedImageIndex: Chỉ ra chỉ số ảnh được hiển thị trên node khi node được chọn. ImageIndex: Chỉ ra chỉ số ảnh được hiển thị trên node khi node không được chọn (deselected). Text: Text hiển thị của Node. FirstNode: Node con đầu tiên của node. LastNode: Nodecon cuối cùng của node. PrevNode: Node con trước node con hiện thời. NextNode: Nodecon tiếp theo node hiện thời. Các phương thức thường dùng Collapse: Thu nhỏ các node con củanode. Expand: Mở rộng các node con của node. ExpandAll: Mở rộng tất cả các node con. GetNodeCount: Trả về số lượng node con. Các sự kiện thường dùng AfterSelect: Xảy ra khi một node được chọn (ngầm định khi nháy đúp chuột ở chế độ thiết kế). BeforeExpand: Xẩy ra khi mở rộng một node Ví dụ Đặt tên các đối tượng treeView1 txtInput comboBox1 btnAddRoot btnAddChild btnDelete Khai báo trong lớp: private TreeNodecurrentNode; Thiết lập thuộc tính ImageCollection cho đối tượng imageList1 Các sự kiện: private voidAddTreeView_Load(object sender, EventArgs e) { treeView1.ImageList = imageList1; comboBox1.Items.Add("Image1"); comboBox1.Items.Add("Image2"); comboBox1.SelectedIndex = 0; } private voidbtnAddRoot_Click(object sender, EventArgs e) { if (txtInput.Text.Trim() == "") return; TreeNode childNode = new TreeNode(); childNode.Text = txtInput.Text; childNode.ImageIndex = comboBox1.SelectedIndex; treeView1.Nodes.Add(childNode); } private voidtreeView1_AfterSelect(object sender,TreeViewEventArgs e) { currentNode = e.Node; } private voidbtnAddChild_Click(object sender, EventArgs e) { if (txtInput.Text.Trim() == "") return; TreeNode childNode = new TreeNode(); childNode.Text = txtInput.Text; childNode.ImageIndex = comboBox1.SelectedIndex; currentNode.Nodes.Add(childNode); currentNode.ExpandAll(); } private voidbtnDelete_Click(object sender, EventArgs e) { currentNode.Remove(); } ListView Dùng để hiển thị dữ liệu theo các dòng và các cột Có thể chọn một hoặc nhiều dòng Có thể hiển thị các biểu
Tài liệu liên quan