如何获取树视图中所有节点的索引
本文关键字:节点 索引 视图 何获取 获取 | 更新日期: 2023-09-27 18:31:10
我尝试使用:
TreeNode node = TreeView1.FindNode()
但它只找到根节点。它找不到子节点。
我想获取所有节点的索引,之后我想使用上面的代码按索引查找节点并选中复选框。
我尝试使用 foreach
遍历所有节点,但找不到子节点和索引。
我正在使用Visual Studio 2013。
以下方法允许您遍历树:
public static IEnumerable<T> Traverse<T>(
this IEnumerable<T> source
, Func<T, IEnumerable<T>> childrenSelector)
{
var stack = new Stack<T>(source);
while (stack.Any())
{
var next = stack.Pop();
yield return next;
foreach (var child in childrenSelector(next))
stack.Push(child);
}
}
使用它,您可以编写:
var allNodes = new[]{root}.Traverse(node => node.Nodes);
然后,您可以对整个树中所有节点的序列执行任何操作,并对它们执行任何操作。