怎样获取Treeview中某个节点下的所有子节点(包括子节点下的节点)?
以前在VB6下是用递归来遍历所有的子节点的,因为VB6的TV控件的节点有一个Child属性可以获得当前节点下的第一个子节点,但VB.net下的TV没有这个属性,如何实现呢?
附:VB6里的代码
Private Sub RecursiveDeleteNode(ByVal nNode As Node)
Dim nNodeChild As Node
nNode.Expanded = True
Debug.Print nNode.Text '//对该节点进行操作,如删除对应数据库里的记录
Set nNodeChild = nNode.Child
Do While Not (nNodeChild Is Nothing)
RecursiveDeleteNode nNodeChild
Set nNodeChild = nNodeChild.Next
Loop
End Sub
我知道这样子可以得到当前选定节点的子节点,但无法得到所有的子节点:
For Each tn As TreeNode In tvwArchives.SelectedNode.Nodes
Debug.Print(tn.Text & "::> " & tn.Name)
Next
盼实现此功能的VB.net代码!
[解决办法]
用递归调用,大致如下
printnode(tvwArchives.Nodes)
private sub printnode(byref tns as Nodes)
For Each tn As TreeNode In tns
Debug.Print(tn.Text & "::> " & tn.Name)
if tn.nodes.count> 0 printnode(tn)
Next
end sub