Treeview控件的使用方法
相信很多編程愛好者都使用過網絡螞蟻或 FoxMail 軟件,其軟件運行主界面的左側有一顯示等級結構的樹狀外觀控件,不僅美觀大方,而且非常方便使用。其實,在 VB 中利用 Treeview 控件很容易就能編寫出同樣效果的程序。
首先在 VB 中建立一個新工程,單擊“工程/部件”,在控件列表中選中“Microsoft Windows command controls6.0(sp4)”,按下“確定”按鈕返回主界面,在左側控件窗體中選中 Treeview 控件置于窗體上,再放置一個 Imagelist 控件、兩個 Label 控件、兩個Textbox 控件、六個 commandbutton 控件,其屬性分別如下:
Treeview 控件:名稱 Treeview1;
Imagelist 控件:名稱 Imagelist1,并在該控件中放置三張個性圖片(32×32),建立索引1、2、3;(方法:在Imagelist 控件上單擊鼠標右鍵選擇屬性)
Label 控件:名稱分別為Lab(0)、Lab(1),Caption分別為“父節點:”、“子節點:”;
Textbox 控件:名稱分別為Txt(0)、Txt(1),text都為“”;
commandbutton 控件:名稱為系統默認,Caption分別為“添加”、“展開”、“收起”、“排序”、“刪除”、“退出”;
將下列代碼加入到代碼框:
| Option Explicit Dim I As Integer Dim J As Integer Dim nodx As Node Dim CunZai As Boolean '定義變量 Private Sub Command1_Click() If Txt(0).Text <> "" And Txt(1).Text <> "" Then '不允許建立零字節的父節點和子節點 CunZai = False J = TreeView1.Nodes.Count For I = 1 To TreeView1.Nodes.Count '檢查新輸入的父節點名稱是否存在 If TreeView1.SelectedItem.Children > 0 Then If Txt(0).Text = TreeView1.Nodes(I).Text Then CunZai = True End If Next I If CunZai = True Then '若存在, 則在父節點下建立子節點 Set nodx = TreeView1.Nodes.Add(Txt(0).Text, tvwChild, "child" & J, Txt(1).Text, 3) Else ,若不存在,則建立父節點和子節點 Set nodx = TreeView1.Nodes.Add(, , Txt(0).Text, Txt(0).Text, 1) Set nodx = TreeView1.Nodes.Add(Txt(0).Text, tvwChild, "child" & J,_ Txt(1).Text, 3) End If TreeView1.Refresh ElseIf Txt(0).Text = "" Then MsgBox "請輸入父節點名稱!", vbInformation, "警告!" '系統提示 ElseIf Txt(1).Text = "" Then MsgBox "請輸入子節點名稱!", vbInformation, "警告!" End If End Sub Private Sub Command2_Click() For I = 1 To TreeView1.Nodes.Count TreeView1.Nodes(I).Expanded = True '展開所有節點 Next I End Sub Private Sub Command3_Click() For I = 1 To TreeView1.Nodes.Count TreeView1.Nodes(I).Expanded = False '收起所有節點 Next I End Sub Private Sub Command4_Click() TreeView1.Sorted = True '排列順序 End Sub Private Sub Command5_Click() If TreeView1.SelectedItem.Index <> 1 Then TreeView1.Nodes.Remove TreeView1.SelectedItem.Index '刪除選定的節點 End If End Sub Private Sub Command6_Click() End '退出程序 End Sub Private Sub Form_Load() TreeView1.LineStyle =TvwTreeLines '在兄弟節點和父節點之間顯示線 TreeView1.ImageList = ImageList1 '鏈接圖像列 TreeView1.Style = tvwTreelinesPlusMinusPictureText '樹狀外觀包含全部元素 Set nodx = TreeView1.Nodes.Add(, , "蒲子明", "蒲子明", 1) '建立名稱為"蒲子明"的父節點,選擇索引為1的圖像 Set nodx = TreeView1.Nodes.Add("蒲子明", tvwChild, "child01", "收件箱", 3) '在"蒲子明"父節點下建立"收件箱"子節點,選擇索引為3的圖像 Set nodx = TreeView1.Nodes.Add("蒲子明", tvwChild, "child02", "發件箱", 3) '在"蒲子明"父節點下建立"發件箱"子節點,選擇索引為3的圖像 CunZai = False End Sub Private Sub TreeView1_Expand(ByVal Node As MSComctlLib.Node) Node.ExpandedImage = 2 '節點被展開時,選擇索引為2的圖像 End Sub Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node) If TreeView1.SelectedItem.Children = 0 Then '檢查是否有子節點,0為無 For I = 1 To TreeView1.Nodes.Count If TreeView1.Nodes(I).Selected Then MsgBox "您選擇的是:“" & TreeView1.Nodes(I).FullPath & "”子節點!" '系統提示 End If Next I End If End Sub |
程序運行界面如下:
![]() |
通過改變圖像信息,增加存儲信息則能編寫出更倩的程序。本程序在WIN98、VB6.0下調試通過。
