vb.net如何递归treeview所有节点

这段VB.NET代码示例展示了如何在TreeView控件中遍历所有节点,查找包含特定字符串的目标节点,并将其选中。当点击Button1时,程序会搜索并高亮显示名称为'a123'的节点。此外,Button2用于弹出包含目标节点在节点集合中索引位置的消息框。在Form1加载时,预先在TreeView1中创建了多个层级的节点,包括目标节点。
摘要由CSDN通过智能技术生成
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>节点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值