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 に答える