首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

怎样获取Treeview中某个节点下的所有子节点(包括子节点下的节点)?解决方案

2012-01-07 
怎样获取Treeview中某个节点下的所有子节点(包括子节点下的节点)?以前在VB6下是用递归来遍历所有的子节点

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

热点排行