dポイントプレゼントキャンペーン実施中!

【C#】TreeViewでクリックした親ノードと、子ノードを表示させたい

C#初心者です。
TreeView(treeView1)で親ノードをクリックしたら、その親ノード+子ノードを、別のTreeView画面(treeView2)に表示させたいのですが、やり方がわかりません。
例えば、

+A
 -B
 -C
+D
 -E

というTreeViewの場合、Aの親ノードをクリックしたら、Aの親ノードと、BとCの子ノードが、別画面(treeView2)に表示されるようにしたいです。
どなたか分かる方いらっしゃいましたら教えていただけると幸いです。
宜しくお願いいたします。

A 回答 (2件)

あまり詳しくはないのですが、ノードのサブツリーを含めたコピーはCloneメソッドを使うと簡単そうです。



「C# treenode clone」などで検索すると様々なサンプルが得られます。少し考えて下記のコードでできたと思います。

Windows7 + Visual C# 2010 Expressで試しています。

private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
TreeNode CloneNode = (TreeNode)e.Node.Clone();
treeView2.Nodes.Clear();
treeView2.Nodes.Add(CloneNode);
treeView2.Nodes[0].Expand(); // rootを展開
}
    • good
    • 0
この回答へのお礼

おかげ様で解決しました。
ご回答ありがとうございました。

お礼日時:2010/08/24 14:31

机上だけで実際にコードを書いていませんので間違いが有るかもしれません。



treeView1のNodeMouseClickイベントにて、
引数TreeNodeMouseClickEventArgs(標準でe)の.Nodeプロパティ(=クリックしたノード)を見て
treeView2に追加すればよいかと思われます。
    • good
    • 0
この回答へのお礼

参考になりました。ご回答ありがとうございました。

お礼日時:2010/08/24 14:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!