簡體   English   中英

如何獲取TreeView中所有節點的索引?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM