读书人

怎样获取Treeview中某个节点下的所有子

发布时间: 2012-01-07 21:41:55 作者: rapoo

怎样获取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

读书人网 >VB Dotnet

热点推荐