Vb.net 在树视图中查找父节点的所有选中节点

Vb.net 在树视图中查找父节点的所有选中节点,vb.net,treeview,nodes,Vb.net,Treeview,Nodes,我一直试图在网上搜索有关子节点的信息,但我似乎找到了除了我要找的以外的所有东西 基本上,我的问题是: 我已确定是否在我的treeview控件中检查父节点。我需要做的是遍历父节点的所有子节点,以确定检查哪些子节点,然后将它们加载到数组中 因为我已经知道父节点,所以我希望我不必再次遍历所有节点。我只想循环通过指定父节点的所有子节点 希望这是有道理的 我的Treeview看起来与此类似: Name -->Name 1 -->Name 2 -->Name 3 -->

我一直试图在网上搜索有关子节点的信息,但我似乎找到了除了我要找的以外的所有东西

基本上,我的问题是: 我已确定是否在我的treeview控件中检查父节点。我需要做的是遍历父节点的所有子节点,以确定检查哪些子节点,然后将它们加载到数组中

因为我已经知道父节点,所以我希望我不必再次遍历所有节点。我只想循环通过指定父节点的所有子节点

希望这是有道理的

我的Treeview看起来与此类似:

Name
  -->Name 1
  -->Name 2
  -->Name 3
  -->Etc
Code
  -->Code 1
  -->Code 2
  -->Code 3
  -->Etc
因此,我的示例如下所示:

 If trvFilter.Nodes.Item(trvFilter.Nodes.IndexOfKey("Name")).Checked = True Then
             'Loop through Child Nodes of Parent Node (Name)
             'If Child Node is checked, add the name of the Child node to an array
         End If
如果这看起来很简单,很抱歉,但我是vb.net新手,无法解决如何循环通过选定父节点的子节点


提前感谢

trvFilter.Nodes是树节点的集合,因此您可以使用for each循环遍历它们

for each tvn as TreeNode in trvFilter.Nodes

 ' do stuff with tvn

next

我似乎已经找到了一种获得最终结果的方法,我需要使用以下代码:

If trvFilter.Nodes.Item(trvFilter.Nodes.IndexOfKey("Name")).Checked = True Then
            'Loop through Child Nodes of Parent Node (Name)
            For Each cn As TreeNode In trvFilter.Nodes.Item(trvFilter.Nodes.IndexOfKey("Name")).Nodes
                'If Child Node is checked, add the name of the Child node to an array
                If cn.Checked Then
                    StoreRecordArray.Add(cn.Text)
                End If
            Next
        End If
如果有更简单(整洁)的方法,请随时更新我的代码。 谢谢