0

我有一个构建良好的树视图,没有任何问题。

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

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

   }
4

2 回答 2

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将包括起始节点(您最初选择的那个)。

于 2013-06-05T18:40:29.393 回答
0

这可能会帮助您朝着正确的方向前进,您需要检查每个子节点以查看它们是否有子节点:

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

    if (parentNode.GetNodeCount(true) > 0)
    {
        foreach (TreeNode childNodes in parentNode.Nodes)
        {
            //// do stuff with nodes.
        }
    }
于 2013-06-05T19:56:47.610 回答