从当前选定的树视图的节点循环

时间:2013-06-05 18:17:33

标签: c# visual-studio-2010 loops treeview tree-nodes

我的树视图已经很好地构建而没有任何问题。

他们是一种开始循环当前所选节点的节点而不是遍历所有节点的方法吗?

TreeNodeCollection nodes = treeView.Nodes;
   foreach (TreeNode n in nodes)
   {

   }

2 个答案:

答案 0 :(得分:1)

您可以使用扩展方法执行此操作:

public static class TreeViewEx
{
    public static List<TreeNode> GetAllNodes(this TreeNode Node)
    {
        List<TreeNode> list = new List<TreeNode>();
        list.Add(Node);
        foreach (TreeNode n in Node.Nodes)
        list.AddRange(GetAllNodes(n));
        return list;
    }
}

像这样使用:

TreeNode node = myTree.SelectedNode;
List<TreeNode> list = node.GetAllNodes();

我应该指出,返回的List将包含起始节点(您最初选择的节点)。

答案 1 :(得分:0)

这可能会帮助您找到正确的方向,检查每个子节点是否有孩子:

    TreeView treeView = new TreeView();
    TreeNode parentNode = treeView.SelectedNode;

    if (parentNode.GetNodeCount(true) > 0)
    {
        foreach (TreeNode childNodes in parentNode.Nodes)
        {
            //// do stuff with nodes.
        }
    }