我在表单中添加了一个树视图。我想捕获复选框的值,无论是否选中。
另外我正在尝试获取节点数。树中有四个节点,
Dim nodes As TreeNodeCollection = TreeView1.Nodes
MsgBox(nodes.Count)
给出 1。
谢谢
我在表单中添加了一个树视图。我想捕获复选框的值,无论是否选中。
另外我正在尝试获取节点数。树中有四个节点,
Dim nodes As TreeNodeCollection = TreeView1.Nodes
MsgBox(nodes.Count)
给出 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
,您希望在其中获取所有已检查的子节点。
希望这会有所帮助并且有意义。