2013-01-07 67 views
1

我已将树状视图添加到了我的表单中。我想捕获复选框的值,哪一个选中或不选。在vb.net中使用树状视图

此外,我想获得节点的计数。有树四个节点,

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

给出1

感谢

+0

[这里](http://www.dotnetperls.com/treeview)是一个很好的教程,尽管在C#中你应该能够很容易地将它应用到VB。 –

+0

您可能有1个根节点和4个子节点。改为使用TreeView1.Nodes.Nodes。 –

+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 

您的代码使用它看起来someth荷兰国际集团这样的:

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

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

nd是在你想获得所有被选中的子节点的树状的特定节点。

希望这有助于并有意义。

+0

非常感谢.......它的工作原理 –