9/15/2010 1 Lập Trình Ứng Dụng Quản Lý 1 Chương 4 Lập trình giao diện với VB NET GV Trương Phước Lộc Khoa CNTT ĐH KHTN Nội dung 1 ListBox 2 ListView 3 TreeView 4 User Control ThS Nguyễn Tấn Trần Minh[.]
9/15/2010 Khoa CNTT-ĐH.KHTN Nội dung Lập Trình Ứng Dụng Quản Lý Chương 4: Lập trình giao diện với VB.NET ListBox ListView TreeView User Control GV Trương Phước Lộc GV Trương Phước Lộc Khoa CNTT-ĐH.KHTN LISTBOX ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN 1.LISTBOX 1.2 Selecting Items • Sử dụng tính SelectedIndex, SelectItem • Sự kiện SelectedIndexChanged • Thuộc tính SelectionMode có giá trị ▫ ▫ ▫ ▫ None: không chọn One: chọn MultiSimple: chọn nhiều (click chọn) MultiExtended: chọn nhiều (kết hợp với phím shift ctrl => SelectedIndices, SelectedItems (chỉ lấy giá trị) GV Trương Phước Lộc ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN LISTBOX (tt) 1.1 Add Items • Sử dụng hàm Add(), AddRange(), Insert() • Ví dụ: lbName.Items.Add("aaa") Dim strMember As String() = {"bbb", "ccc"} lbName.Items.AddRange(strMember) lbName.Items.Insert(2, "ddd") 1.1 Adding Items 1.2 Selecting Items 1.3 Removing Items 1.4 Sorting 1.5 Scroll bars GV Trương Phước Lộc ThS Nguyễn Tấn Trần Minh Khang GV Trương Phước Lộc ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN 1.LISTBOX 1.3 Removing Items • Sử dụng hàm Remove(), RemoveAt() • Xóa tồn bộ: Clear() • Ví dụ lbName.Items.Remove("aaa") lbName.Items.RemoveAt(3) lbName.Items.Clear() GV Trương Phước Lộc ThS Nguyễn Tấn Trần Minh Khang 9/15/2010 Khoa CNTT-ĐH.KHTN 1.LISTBOX 1.4 Sorting • Sử dụng thuộc tính Sorted = true/false GV Trương Phước Lộc ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN LISTVIEW 2.1 Creating items 2.2 View styles 2.3 List View Items and their Icons 2.4 The columns 2.5 Adding the items 2.6 Selecting Items 2.7 Sub Items 2.8 Editing a label 2.9 Font, text color & background color of item 2.10 Locating a ListViewItem 2.11 Deleting items 2.12 ListItems & CheckBoxes GV Trương Phước Lộc ThS Nguyễn Tấn Trần Minh Khang • Sử dụng thuộc tính View ▫ ▫ ▫ ▫ 11 GV Trương Phước Lộc ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN LISTVIEW 2.1 Creating items GV Trương Phước Lộc 10 ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN LISTVIEW 2.3 List View Items and their Icons • Sử dụng đối tượng ImageList • Thuộc tính LargeImageList SmallImageList ListView • Thuộc tính ImageIndex Item LargeIcon SmallIcon List Details GV Trương Phước Lộc • Vertical scroll bar: tự động • Horizontal scroll bar: dùng thuộc tính HorizontalScrollbar • Cửa sổ Properties => Items Khoa CNTT-ĐH.KHTN LISTVIEW 2.2 View styles Khoa CNTT-ĐH.KHTN LISTBOX 1.5 Scroll bars ThS Nguyễn Tấn Trần Minh Khang GV Trương Phước Lộc 12 ThS Nguyễn Tấn Trần Minh Khang 9/15/2010 Khoa CNTT-ĐH.KHTN LISTVIEW 2.4 The columns • Giới thiệu GV Trương Phước Lộc • Cửa sổ Properties => Columns 13 ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN LISTVIEW 2.4 The Columns • Sử dụng hàm Add(), Insert() • Cách 1: ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN lvName.Select() lvName.Items(index).Selected = True • Sự kiện SelectedIndexChanged • Thuộc tính MultiSelect để chọn nhiều item => SelectedIndices, SelectedItems 17 Khoa CNTT-ĐH.KHTN LISTVIEW 2.5 Adding an item Dim lviCountries() As ListViewItem = _ { New ListViewItem("Australia"), _ New ListViewItem("Mali"), _ New ListViewItem("Sweden"), _ New ListViewItem("Venezuela") } lvName.Items.AddRange(lviCountries) • Thuộc tính Selected item sử dụng muốn chọn item GV Trương Phước Lộc ThS Nguyễn Tấn Trần Minh Khang Dim lviPortugal As ListViewItem = New ListViewItem("Portugal") lvName.Items.Add(lviPortugal) Dim colArea As ColumnHeader = New ColumnHeader() colArea.Text = "Area" colArea.Width = 80 colArea.TextAlign = HorizontalAlignment.Right lvName.Columns.Add(colArea) lvName.Columns.Insert(index, colArea) LISTVIEW 2.6 Selecting an item 14 lvName.Items.Add("Egypt") • Cách 2: 15 GV Trương Phước Lộc • Sử dụng hàm Add(), AddRange() • Ví dụ lvName.Columns.Add("Name", 120, HorizontalAlignment.Left) GV Trương Phước Lộc Khoa CNTT-ĐH.KHTN LISTVIEW 2.4 The colums ThS Nguyễn Tấn Trần Minh Khang GV Trương Phước Lộc 16 ThS Nguyễn Tấn Trần Minh Khang 2.LISTVIEW 2.7 Sub Items of an item Khoa CNTT-ĐH.KHTN • Giới thiệu • Tạo giao diện: Properties listview, items, Listview collection editor, subitems • Sử dụng hàm Add() ListViewItem Dim lviPortugal As ListViewItem = New ListViewItem("Portugal") lviPortugal.SubItems.Add("92,391") GV Trương Phước Lộc 18 ThS Nguyễn Tấn Trần Minh Khang 9/15/2010 LISTVIEW 2.7 Sub Items of an item Khoa CNTT-ĐH.KHTN • Thay đổi font, màu nền, màu chữ ▫ Khởi tạo thuộc tính UseItemStyleForSubItems ListViewItem false ▫ Sử dụng thuộc tính Font, ForeColor, BackColor sub item GV Trương Phước Lộc 19 ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN LISTVIEW 2.9 Editing a Label • Sử dụng thuộc tính LabelEdit • Các kiện BeforeLabelEdit, AfterLabelEdit => tham số LabelEditEventArgs (Item, CancelEdit) GV Trương Phước Lộc 21 ThS Nguyễn Tấn Trần Minh Khang LISTVIEW 2.11 Locating a ListViewItem Khoa CNTT-ĐH.KHTN • Sử dụng hàm GetItemAt() • Ví dụ: lvName.GetItemAt(x, y) Khoa CNTT-ĐH.KHTN LISTVIEW 2.8 Deleting Items • Sử dụng hàm Remove(), RemoveAt() • Xóa tồn bộ: Clear() • Ví dụ lvName.Items.Remove("aaa") lvName.Items.RemoveAt(3) lvName.Items.Clear() GV Trương Phước Lộc 20 ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN LISTVIEW 2.10 Font, text color & background color of item • Sử dụng thuộc tính Font, ForeColor, BackColor item GV Trương Phước Lộc 22 ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN LISTVIEW 2.12 ListItems & CheckBoxes • Sử dụng thuộc tính CheckBoxes • Thuộc tính CheckedIndices, CheckedItems GV Trương Phước Lộc 23 ThS Nguyễn Tấn Trần Minh Khang GV Trương Phước Lộc 24 ThS Nguyễn Tấn Trần Minh Khang 9/15/2010 LISTVIEW 2.13 Một số thuộc tính khác Khoa CNTT-ĐH.KHTN TREEVIEW 3.1 Introduction 3.2 Creating the nodes 3.3 Creating child nodes 3.4 Number of child nodes 3.5 Selecting nodes 3.6 Editing a node 3.7 Locating a node 3.8 Deleting a node 3.9 Check Boxes 3.10 Icons 3.11 Other properties • Thuộc tính HeaderStyle • Thuộc tính FullRowSelect • Thuộc tính GridLines GV Trương Phước Lộc 25 ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN TREEVIEW 3.1 Introduction Khoa CNTT-ĐH.KHTN • Thể dạng • Từng node bên TreeNode • Trong TreeNode có nhiều TreeNode GV Trương Phước Lộc 26 ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN TREEVIEW 3.1 Introduction • Thuộc tính ▫ Nodes ▫ SelectedNode ▫ ImageList • Sự kiện ▫ AfterSelect ▫ BeforeSelect • Phương thức ▫ CollapseAll ▫ ExpandAll GV Trương Phước Lộc 27 TREEVIEW 3.2 Creating the nodes ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN • Sử dụng hàm Add(), AddRange(), Insert() • Ví dụ: Dim node as TreeNode = tvName.Nodes.Add("aaa") Dim nodNum() As TreeNode = _ { New TreeNode(“1"), _ New TreeNode(“2"), _ New TreeNode(“3"), _ New TreeNode(“4") } tvName.Nodes.AddRange(nodNum) GV Trương Phước Lộc 29 ThS Nguyễn Tấn Trần Minh Khang GV Trương Phước Lộc 28 ThS Nguyễn Tấn Trần Minh Khang TREEVIEW 3.3 Creating child nodes Khoa CNTT-ĐH.KHTN • Sử dụng hàm khởi tạo biến TreeNode • Ví dụ: Dim nodeNum() As TreeNode = _ { New TreeNode(“1"), _ New TreeNode(“2"), _ New TreeNode(“3"), _ New TreeNode(“4") } Dim node As TreeNode = _ New TreeNode(“Numbers", nodeNum) tvName.Nodes.Add(node) GV Trương Phước Lộc 30 ThS Nguyễn Tấn Trần Minh Khang 9/15/2010 TREEVIEW 3.3 Creating child nodes Khoa CNTT-ĐH.KHTN • Sử dụng hàm Add(), AddRange(), Insert() biến TreeNode • Ví dụ: Dim node As TreeNode = tvName.Nodes.Add(“num") node.Nodes.Add("333") GV Trương Phước Lộc 31 TREEVIEW 3.5 Selecting Nodes ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN • Sử dụng tính SelectedNode • Sự kiện AfterSelect, BeforeSelect • Ngồi ra, sử dụng thuộc tính IsSelected TreeNode để kiểm tra node có chọn hay không TREEVIEW 3.4 Number of child nodes Khoa CNTT-ĐH.KHTN • Số nodes TreeView (TreeNode) sử dụng hàm GetNodeCount() TreeView (TreeNode) • Tham số True: kể node cháu • Tham số False: có node • Ví dụ: tvName.GetNodeCount(true) tvName.GetNodeCount(false) GV Trương Phước Lộc 32 ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN TREEVIEW 3.6 Editing a node • Sử dụng thuộc tính LabelEdit • Các kiện BeforeLabelEdit, AfterLabelEdit => tham số LabelEditEventArgs (Item, CancelEdit) • Duyệt node: sử dụng thuộc tính FirstNode, PrevNode, NextNode, LastNode TreeNode GV Trương Phước Lộc 33 TREEVIEW 3.7 Locating a node ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN • Sử dụng hàm GetNodeAt() • Ví dụ: tvName.GetNodeAt(x, y) GV Trương Phước Lộc 35 GV Trương Phước Lộc 34 ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN TREEVIEW 3.8 Deleting a node • Sử dụng hàm Remove(), RemoveAt() • Xóa toàn bộ: Clear() ThS Nguyễn Tấn Trần Minh Khang GV Trương Phước Lộc 36 ThS Nguyễn Tấn Trần Minh Khang 9/15/2010 Khoa CNTT-ĐH.KHTN TREEVIEW 3.9 Check Boxes • Sử dụng thuộc tính CheckBoxes Khoa CNTT-ĐH.KHTN TREEVIEW 3.10 Icons • Sử dụng đối tượng ImageList • Thuộc tính ImageList TreeView • Thuộc tính ImageIndex Item • Sử dụng thuộc tính Checked biến TreeNode • Sử dụng kiện AfterChecked GV Trương Phước Lộc 37 ThS Nguyễn Tấn Trần Minh Khang Thuộc Thuộc Thuộc Thuộc Thuộc Thuộc 39 ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN USER CONTROL 4.1 Introduction • Extended Control ▫ Kế thừa từ lớp đối tượng tương ứng ▫ Bổ sung override phương thức ▫ Vd: textbox mới, button • Custom Control ▫ Kế thừa tứ lớp control ▫ Tự vẽ hình dáng cách ứng xử ▫ Vd: đồng hồ • Composite Control ▫ Kế thừa tứ lớp UserControl ▫ Xác định control con, bổ sung override lại phương thức ▫ Vd: nhập thong tin khách hàng GV Trương Phước Lộc 41 ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN USER CONTROL tính HotTracking TreeView tính ShowLines TreeView tính ShowRootLines TreeView tính FullRowSelect TreeView tính Indent TreeView tính FullPath TreeView GV Trương Phước Lộc 38 Khoa CNTT-ĐH.KHTN TREEVIEW 3.11 Other properties • • • • • • GV Trương Phước Lộc ThS Nguyễn Tấn Trần Minh Khang 4.1 Introduction 4.2 Creating control 4.3 Delegate & event GV Trương Phước Lộc 40 USER CONTROL 4.2 Creating control ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN • Extended control ▫ Chuột phải project => Add New Item … => Custom Control ▫ Mở file *.Designer.vb chỉnh lại thành control cần thiết • Custom control ▫ Chuột phải project => Add New Item … => Custom Control • Composite control ▫ Chuột phải project => Add New Item … => User Control GV Trương Phước Lộc 42 ThS Nguyễn Tấn Trần Minh Khang 9/15/2010 Khoa CNTT-ĐH.KHTN USER CONTROL 4.3 Delegate & event Khoa CNTT-ĐH.KHTN Q&A • Delegate: ▫ Tương tự trỏ hàm ▫ Khai báo Public Delegate Sub SoNhaChangedHandler(ByVal str As String) • Event ▫ Khai báo Public Event SoNhaChanged As SoNhaChangedHandler ▫ Phát kiện RaiseEvent SoNhaChanged(…) GV Trương Phước Lộc 43 ThS Nguyễn Tấn Trần Minh Khang GV Trương Phước Lộc 44 ThS Nguyễn Tấn Trần Minh Khang