我嘗試使用:如何獲取TreeView中所有節點的索引?
TreeNode node = TreeView1.FindNode()
但只找到根節點。它無法找到子節點。
我想所有節點的指標之後,我想通過索引使用上面的代碼中找到節點並勾選。
我嘗試使用foreach
通過所有節點進行迭代,但我不能夠找到子節點和索引。
我使用Visual Studio 2013年
我嘗試使用:如何獲取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);
然後,您可以做無論你想要的是整棵樹中所有節點的序列,並隨你做他們想做的事情。
是的。添加了缺少的標籤。 – RKh 2014-11-20 17:22:20