[英]How to get index of all the nodes in a TreeView?
我嘗試使用:
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);
然后,您可以對整個樹中所有節點的順序執行任何所需的操作,並對它們進行任何所需的操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.