[示例四] 自动创建树状图形(Add方法示例)
在VBE编辑器中插入一个用户窗体,并放置一个TreeView控件。然后在该窗体代码窗口中输入下面的代码:
Private Sub UserForm_Initialize()
Dim i As Long
Dim j As Long
Dim k As Long
Dim Title As String
Dim xNode As Node
Dim NodeKey As String
Dim NodeKey2 As String
With Me.TreeView1
For i = 1 To 5
Set xNode = .Nodes.Add
NodeKey = "Node - " & i
With xNode
.Key = NodeKey
.Text = "Node - " & i
.Expanded = False
End With
For j = 1 To 7
Set xNode = .Nodes.Add(NodeKey, tvwChild)
NodeKey2 = "Node - Child - " & i & j
With xNode
.Key = NodeKey2
.Text = "Child - " & j
End With
For k = 1 To 10
Set xNode = .Nodes.Add(NodeKey2, tvwChild)
With xNode
.Text = "Child2 - " & k
End With
Next k
Next j
Next i
End With
Set xNode = Nothing
End Sub
Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
Me.Caption = Node.Text
End Sub
本示例很好地演示了添加节点的方法。代码中,通过循环添加了5个根节点,在每个根节点下又添加了7个子节点,在每个子节点下又添加了10个子节点。
[示例五] TreeView控件和复合框组合使用
在VBE编辑器中插入一个用户窗体,并放置一个TreeView控件和一个复合框控件,然后在该窗体的代码窗口中输入下面的代码:
Private Sub UserForm_Initialize()
Dim i As Long
Dim j As Long
Dim k As Long
Dim Title As String
Dim xNode As Node
Dim NodeKey As String
Dim NodeKey2 As String
With Me.TreeView1
For i = 1 To 5
Set xNode = .Nodes.Add
NodeKey = "Node - " & i
With xNode
.Key = NodeKey
.Text = "Node - " & i
.Expanded = False
End With
Me.ComboBox1.AddItem ("Node - " & i)
For j = 1 To 7
Set xNode = .Nodes.Add(NodeKey, tvwChild)
NodeKey2 = "Node - Child - " & i & j
With xNode
.Key = NodeKey2
.Text = "Child - " & j
End With
Me.ComboBox1.AddItem ("Child - " & j)
For k = 1 To 10
Set xNode = .Nodes.Add(NodeKey2, tvwChild)
With xNode
.Text = "Child2 - " & k
End With
Me.ComboBox1.AddItem ("Child2 - " & k)
Next k
Next j
Next i
End With
Set xNode = Nothing
End Sub
Private Sub ComboBox1_Click()
On Error Resume Next
Me.TreeView1.Nodes(Me.ComboBox1.ListIndex + 1).Parent.Parent.Expanded = True
Me.TreeView1.Nodes(Me.ComboBox1.ListIndex + 1).Parent.Expanded = True
Me.TreeView1.Nodes(Me.ComboBox1.ListIndex + 1).Expanded = True
On Error GoTo 0
End Sub
上面的代码先建立一个树形图,并将节点全部添加到复合框中。然后,可以单击复合框中的相应节点来展开树形图中的根节点。
【
OfficeBa论坛】:阅读本文时遇到了什么问题,可以到论坛进行交流!Excel专家邮件:342327115@qq.com(大家在Excel使用中遇到什么问题,可以咨询此邮箱)。
【声明】:以上文章或资料除注明为Office吧自创或编辑整理外,均为各方收集或网友推荐所得。其中摘录的内容以共享、研究为目的,不存在任何商业考虑。如有任何异议,请与本站联系,联系邮箱:thinkou@126.com,本站确认后将立即撤下。谢谢您的支持与理解!