ツリービューの追加メソッドにノードを追加できます。しかし、特定の子ノードにノードを追加したいとします。例えば は、どのように私はこれを行うことができないNODE5に特定の子ノードにノードを追加する
|___node0
|___node1
| |___node3
| |___node4
| |___node5
|___node2
をノードを追加したいですか?おかげさまで
ツリービューの追加メソッドにノードを追加できます。しかし、特定の子ノードにノードを追加したいとします。例えば は、どのように私はこれを行うことができないNODE5に特定の子ノードにノードを追加する
|___node0
|___node1
| |___node3
| |___node4
| |___node5
|___node2
をノードを追加したいですか?おかげさまで
私の一番上の基本的な再帰的なツリーノード探索、以下のようにそのコレクションに新しい子を追加します頭。キーで検索する必要がある場合は、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;
}
TreeNode[] tn = treeView.Nodes[0].Nodes.Find(search.Text, true);
if (tn.Count>0)
tn[0].Add(nod);
else
//handle node not found
あなたは子ノードへの参照を持っている場合、あなたは、単にそのノードのコレクションにアクセスすることができますし、
node5.Nodes.Add(New TreeNode("temp"));
ウィリアムは正しかったが、この方法は、次のようになります。
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;
}
はこれをテストし、うまく動作しますが、
乾杯!
私はこの方法をどうやって使うのですか?そしてこの方法が私に与えることは?詳細を教えてください。ありがとう。 – Tavousi
TreeNodeノード= FindNode(treeView1.Nodes [0]、 "node5") –