TreeView节点的增,删,排序

来源:互联网 发布:淘宝售后退货关闭了 编辑:程序博客网 时间:2024/06/18 17:43

 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分别为“添加”、“展开”、“收起”、“排序”、“删除”、“退出”;

  将下列代码加入到代码框:

  1. Option Explicit
  2. Dim I As Integer
  3. Dim J As Integer
  4. Dim nodx As Node
  5. Dim CunZai As Boolean '定义变量
  6. Private Sub Command1_Click()
  7.    If Txt(0).Text <> "" And Txt(1).Text <> "" Then '不允许建立零字节的父节点和子节点
  8.      CunZai = False
  9.      J = TreeView1.Nodes.Count
  10.      For I = 1 To TreeView1.Nodes.Count '检查新输入的父节点名称是否存在
  11.        If TreeView1.SelectedItem.Children > 0 Then
  12.          If Txt(0).Text = TreeView1.Nodes(I).Text Then CunZai = True
  13.          End If
  14.      Next I
  15.      If CunZai = True Then '若存在, 则在父节点下建立子节点
  16.       Set nodx = TreeView1.Nodes.Add(Txt(0).Text, tvwChild, "child" & J, _
  17.                              Txt(1).Text, 3)
  18.      Else  '若不存在,则建立父节点和子节点
  19.        Set nodx = TreeView1.Nodes.Add(, , Txt(0).Text, Txt(0).Text, 1)
  20.        Set nodx = TreeView1.Nodes.Add(Txt(0).Text, tvwChild, "child" & J, _
  21.                      Txt(1).Text, 3)
  22.      End If
  23.      TreeView1.Refresh
  24.    ElseIf Txt(0).Text = "" Then MsgBox "请输入父节点名称!", vbInformation, "警告!"
  25.    '系统提示
  26.    ElseIf Txt(1).Text = "" Then MsgBox "请输入子节点名称!", vbInformation, "警告!"
  27.    End If
  28. End Sub
  29. Private Sub Command2_Click()
  30.    For I = 1 To TreeView1.Nodes.Count
  31.      TreeView1.Nodes(I).Expanded = True '展开所有节点
  32.    Next I
  33. End Sub
  34. Private Sub Command3_Click()
  35.    For I = 1 To TreeView1.Nodes.Count
  36.      TreeView1.Nodes(I).Expanded = False '收起所有节点
  37.    Next I
  38. End Sub
  39. Private Sub Command4_Click()
  40.    TreeView1.Sorted = True '排列顺序
  41. End Sub
  42. Private Sub Command5_Click()
  43.    If TreeView1.SelectedItem.Index <> 1 Then
  44.      TreeView1.Nodes.Remove TreeView1.SelectedItem.Index '删除选定的节点
  45.    End If
  46. End Sub
  47. Private Sub Command6_Click()
  48.    End '退出程序
  49. End Sub
  50. Private Sub Form_Load()
  51.    TreeView1.LineStyle = tvwTreeLines '在兄弟节点和父节点之间显示线
  52.    TreeView1.ImageList = ImageList1 '链接图像列
  53.    TreeView1.Style = tvwTreelinesPlusMinusPictureText
  54.    '树状外观包含全部元素
  55.    Set nodx = TreeView1.Nodes.Add(, , "keenweiwei""keenweiwei", 1)
  56.    '建立名称为 "keenweiwei"的父节点,选择索引为1的图像
  57.    Set nodx = TreeView1.Nodes.Add("keenweiwei", tvwChild, "child01""收件箱", 3)
  58.    '在 "keenweiwei"父节点下建立"收件箱"子节点,选择索引为3的图像
  59.    Set nodx = TreeView1.Nodes.Add("keenweiwei", tvwChild, "child02""发件箱", 3)
  60.    '在 "keenweiwei"父节点下建立"发件箱"子节点,选择索引为3的图像
  61.    CunZai = False
  62. End Sub
  63. Private Sub Label1_Click(Index As Integer)
  64. End Sub
  65. Private Sub TreeView1_Expand(ByVal Node As MSComctlLib.Node)
  66.    Node.ExpandedImage = 2 '节点被展开时,选择索引为2的图像
  67. End Sub
  68. Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
  69.    If TreeView1.SelectedItem.Children = 0 Then '检查是否有子节点,0为无
  70.      For I = 1 To TreeView1.Nodes.Count
  71.      If TreeView1.Nodes(I).Selected Then
  72.        MsgBox "您选择的是:“" & TreeView1.Nodes(I).FullPath & "”子节点!"
  73.        '系统提示
  74.      End If
  75.      Next I
  76.    End If
  77. End Sub