Public Class Form1
Dim targetStr As String = "a123" '查询目标节点名
Dim allNodes As New ArrayList
'遍历并定位节点
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
get_n(TreeView1.Nodes) '获取所有节点的集合(mnodes)
For Each ntxt As TreeNode In allNodes
If ntxt.Text.IndexOf(targetStr) >= 0 Then
TreeView1.SelectedNode = ntxt '打开目标节点
TreeView1.Focus()
End If
Next
End Sub
'遍历现有的所有节点并存入mnodes集合
Private Sub get_n(ByVal cn As TreeNodeCollection)
Dim cnodes As TreeNode
For Each tmp As TreeNode In cn
If tmp.Nodes.Count > 0 Then
allNodes.Add(tmp)
cnodes = tmp
get_n(cnodes.Nodes)
Else
allNodes.Add(tmp)
End If
Next
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
MsgBox(TreeView1.Nodes.IndexOf(New TreeNode("a123")))
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
With TreeView1
.Nodes.Add("节点1")
.Nodes.Add("节点2")
.Nodes(0).Nodes.Add("子节点1")
.Nodes(0).Nodes.Add("子节点2")
.Nodes(1).Nodes.Add("子节点3")
.Nodes(1).Nodes(0).Nodes.Add("子节点4")
.Nodes(1).Nodes(0).Nodes.Add("a123") '目标节点
End With
End Sub
End Class
以上是示例代码。
该示例代码预先在treeview1控件中添加若干个分级子节点,其中添加一个名为“a123”的目标节点。按下<button1>按钮遍历所有预先添加的节点集合并选择<a123>节点。