• ベストアンサー

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

【C#】TreeViewでクリックした親ノードと、子ノードを表示させたい C#初心者です。 TreeView(treeView1)で親ノードをクリックしたら、その親ノード+子ノードを、別のTreeView画面(treeView2)に表示させたいのですが、やり方がわかりません。 例えば、 +A  -B  -C +D  -E というTreeViewの場合、Aの親ノードをクリックしたら、Aの親ノードと、BとCの子ノードが、別画面(treeView2)に表示されるようにしたいです。 どなたか分かる方いらっしゃいましたら教えていただけると幸いです。 宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • SHIMAPEE
  • ベストアンサー率75% (154/203)
回答No.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を展開 }

bonnnu1126
質問者

お礼

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

その他の回答 (1)

  • wtm909
  • ベストアンサー率60% (3/5)
回答No.1

机上だけで実際にコードを書いていませんので間違いが有るかもしれません。 treeView1のNodeMouseClickイベントにて、 引数TreeNodeMouseClickEventArgs(標準でe)の.Nodeプロパティ(=クリックしたノード)を見て treeView2に追加すればよいかと思われます。

bonnnu1126
質問者

お礼

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

関連するQ&A