我一直在尝试在网上搜索有关子节点的信息,但我似乎找到了所有我想要的东西。
基本上,我的问题是: 我已确定是否在我的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的新手,无法解决如何遍历所选父级的子节点。
提前致谢
答案 0 :(得分:0)
trvFilter.Nodes是TreeNode的集合,因此您可以使用for-each循环遍历它们
for each tvn as TreeNode in trvFilter.Nodes
' do stuff with tvn
next
答案 1 :(得分:0)
我似乎找到了一种方法,可以使用以下代码获取我需要的最终结果:
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
如果有更简单(更整洁)的方法,请随时更新我的代码。 感谢