VB.NET中TreeView查找下一个节点

Private Function GetNextNode(ByVal ATreeNode) As TreeNode
    If ATreeNode Is Nothing Then
        Return Nothing
    End If
    If ATreeNode.Nodes.Count > 0 Then
        Return ATreeNode.Nodes(0)
    Else
        While True
            If ATreeNode.Parent Is Nothing Then
                If ATreeNode.Index + 1 < ATreeNode.TreeView.Nodes.Count Then
                    Return ATreeNode.TreeView.Nodes(ATreeNode.Index + 1)
                Else
                    Return Nothing
                End If
            Else
                If ATreeNode.Index + 1 < ATreeNode.Parent.Nodes.Count Then
                    Return ATreeNode.Parent.Nodes(ATreeNode.Index + 1)
                Else
                    ATreeNode = ATreeNode.Parent
                End If
            End If
        End While
        Return Nothing
    End If
End Function
Private Sub FindNextNode(ByVal ATreeView As TreeView, ByVal AText As String)
    If ATreeView Is Nothing Or ATreeView.Nodes.Count <= 0 Then
        Return
    End If
    Dim vTreeNode As TreeNode = ATreeView.SelectedNode
 
    If vTreeNode Is Nothing Then
        vTreeNode = ATreeView.Nodes(0)
    Else
        vTreeNode = GetNextNode(vTreeNode)
    End If
    Dim vStartNode As TreeNode = vTreeNode
    While Not vTreeNode Is Nothing
        If vTreeNode.Text.IndexOf(AText) >= 0 Then
            ATreeView.SelectedNode = vTreeNode
            Return
        End If
        vTreeNode = GetNextNode(vTreeNode)
    End While
    ATreeView.SelectedNode = Nothing
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click
    FindNextNode(TreeView1, "节点")
    TreeView1.HideSelection = False
    If Not TreeView1.SelectedNode Is Nothing Then
        If TreeView1.SelectedNode.IsVisible Then
            TreeView1.SelectedNode.EnsureVisible()
        End If
    End If
End Sub
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值