2

我一直在尝试在网上搜索有关子节点的信息,但我似乎找到了除了我正在寻找的东西之外的所有东西。

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

由于我已经知道父节点,我希望我不必再次遍历所有节点。我只想遍历指定父节点的所有子节点。

希望这是有道理的。

我的 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 的新手,不知道如何循环遍历选定父节点的子节点。

提前致谢

4

2 回答 2

1

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

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

如果有更简单(更整洁)的方法,请随时更新我的​​代码。谢谢

于 2013-08-08T07:57:33.770 回答
0

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

for each tvn as TreeNode in trvFilter.Nodes

 ' do stuff with tvn

next
于 2013-08-08T07:46:54.217 回答