2010-12-08 15 views
0

ツリービューの追加メソッドにノードを追加できます。しかし、特定の子ノードにノードを追加したいとします。例えば は、どのように私はこれを行うことができないNODE5に特定の子ノードにノードを追加する

|___node0 
|___node1  
|  |___node3 
|  |___node4 
|   |___node5 
|___node2 

をノードを追加したいですか?おかげさまで

答えて

1

私の一番上の基本的な再帰的なツリーノード探索、以下のようにそのコレクションに新しい子を追加します頭。キーで検索する必要がある場合は、weismatによる回答が最も簡単ですが、ノード上のデータで検索する必要がある場合は、名前検索を置き換えることができるようにこのソリューションを検討する必要があります。

private TreeNode FindNode(TreeNode root, String name) 
{ 
    foreach (TreeNode node in root.Nodes) 
    { 
     if (node.Nodes.Count > 0) 
      return FindNode(root, name); 
     if (node.Name == name) 
      return node; 
    } 
    return null; 
} 
+0

私はこの方法をどうやって使うのですか?そしてこの方法が私に与えることは?詳細を教えてください。ありがとう。 – Tavousi

+1

TreeNodeノード= FindNode(treeView1.Nodes [0]、 "node5") –

4
TreeNode[] tn = treeView.Nodes[0].Nodes.Find(search.Text, true); 
if (tn.Count>0) 
    tn[0].Add(nod); 
else 
    //handle node not found 
3

あなたは子ノードへの参照を持っている場合、あなたは、単にそのノードのコレクションにアクセスすることができますし、

node5.Nodes.Add(New TreeNode("temp")); 
0

ウィリアムは正しかったが、この方法は、次のようになります。

private TreeNode FindNode(TreeNode root, String name) 
     { 
      foreach (TreeNode node in root.Nodes) 
      { 
       if (node.Name == name) 
        return node; 
       else 
       { 
        if (node.Nodes.Count > 0) 
         return FindNode(node, name); 
       } 
      } 
      return null; 
     } 

はこれをテストし、うまく動作しますが、

乾杯!

関連する問題