2010-07-07 85 views

回答

3

据我所知,没有办法选择所有节点。但是,你可以建立自己的这样的:

Queue<UltraTreeNode> queue = new Queue<UltraTreeNode>(ultraTree1.Nodes); 
while (queue.Count > 0) 
{ 
    UltraTreeNode node = queue.Dequeue(); 
    foreach(UltraTreeNode child in node.Nodes) 
     queue.Enqueue(child); 
    node.Selected = true; 
} 
0

一个用于这个可能的修改是使用产量回归语句来提供所有的树节点为枚举集合:

private IEnumerable<UltraTreeNode> AllTreeNodes() 
{ 
    Queue<UltraTreeNode> queue = new Queue<UltraTreeNode>(ultraTree1.Nodes.OfType<UltraTreeNode>()); 
    while (queue.Count > 0) 
    { 
     UltraTreeNode node = queue.Dequeue(); 
     foreach (UltraTreeNode child in node.Nodes) 
      queue.Enqueue(child); 

     yield return node; 
    } 
} 

然后你可以贯穿每个物品并做任何你想要的处理(不管是标记它们还是其他选择):

foreach (var node in AllTreeNodes()) 
{ 
    // Take whatever action is needed 
    // 
    node.Selected = true; 
}