在vb.net中使用树视图

时间:2013-01-07 15:49:05

标签: vb.net

我在表单中添加了一个树形视图。我想捕获复选框的值,选中哪一个。

此外,我正在尝试获取节点数。树中有四个节点,

Dim nodes As TreeNodeCollection = TreeView1.Nodes
    MsgBox(nodes.Count)

给出1。

由于

1 个答案:

答案 0 :(得分:1)

......这可能不是最好的方法,但它有效...

该功能如下所示:

Function GetAllCheckedNodes(ByVal tv As TreeView, Optional ByRef tn As TreeNode = Nothing) As List(Of TreeNode)
    Dim RetVal As New List(Of TreeNode)


    If tn Is Nothing Then
        For Each nd In tv.Nodes
            RetVal.AddRange(GetAllCheckedNodes(tv, nd))
        Next
    Else

        If tn.Checked Then RetVal.Add(tn)

        For Each nd In tn.Nodes
            RetVal.AddRange(GetAllCheckedNodes(tv, nd))
        Next
    End If

    Return RetVal
End Function

使用它的代码看起来像是:

    Dim MyList As List(Of TreeNode) = GetAllCheckedNodes(tvAccounts)

    Dim MyList As List(Of TreeNode) = GetAllCheckedNodes(tvAccounts, nd)

其中nd是树视图中您希望获取所有子节点的特定节点。

希望这有帮助并且有意义。