- ベストアンサー
【C#】TreeViewでクリックした親ノードと、子ノードを表示させた
【C#】TreeViewでクリックした親ノードと、子ノードを表示させたい C#初心者です。 TreeView(treeView1)で親ノードをクリックしたら、その親ノード+子ノードを、別のTreeView画面(treeView2)に表示させたいのですが、やり方がわかりません。 例えば、 +A -B -C +D -E というTreeViewの場合、Aの親ノードをクリックしたら、Aの親ノードと、BとCの子ノードが、別画面(treeView2)に表示されるようにしたいです。 どなたか分かる方いらっしゃいましたら教えていただけると幸いです。 宜しくお願いいたします。
- みんなの回答 (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を展開 }
その他の回答 (1)
- wtm909
- ベストアンサー率60% (3/5)
机上だけで実際にコードを書いていませんので間違いが有るかもしれません。 treeView1のNodeMouseClickイベントにて、 引数TreeNodeMouseClickEventArgs(標準でe)の.Nodeプロパティ(=クリックしたノード)を見て treeView2に追加すればよいかと思われます。
お礼
参考になりました。ご回答ありがとうございました。
お礼
おかげ様で解決しました。 ご回答ありがとうございました。