- PR -

TreeViewオブジェクトのコピー方法(C#)

投稿者投稿内容
alf
常連さん
会議室デビュー日: 2005/11/15
投稿数: 22
お住まい・勤務地: 岐阜県・愛知県
投稿日時: 2006-08-02 18:56

 投稿者のalfです。
 度々のレスポンス、毎度有難うございます。

 説明しやすいように二つのTreeViewの同期を例に挙げましたが、実際にや
 りたいのは下記のようなTreeNode管理でした。


 画面を持たない | Windows Formを持つ
  インターフェイス(dll) |  アプリケーション(exe)
  (TreeNode管理用)        |
|
   XMLファイルを関連付けた |  Form上に張りつけられた
   TreeViewオブジェクト(※) −−−−−−→ TreeViewオブジェクト
    CloneでNodeコピー
|
|
|

  ↑TreeView上でNodeが変更されたらインターフェイス側のTreeNodeも
   連動して変更させたい
  ((※)はTreeNodeオブジェクトでもいいと思いますが)


 他のインターフェイスからも上記(※)の状態を参照しているため、
 TreeNodeがインターフェイスから参照コピーできればTreeView上でNodeが
 変更されても(※)の管理が楽になると思ってました。
 現在はTreeView上でノードが変更されたら、TreeViewのNodeを引数にイン
 ターフェイスに渡してNodeの処理を行っています。
 他に方法が思いつかなかったので今はこんな作りになっています。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-02 19:09
引用:

alfさんの書き込み (2006-08-02 18:56) より:

説明しやすいように二つのTreeViewの同期を例に挙げましたが、実際にやりたいのは下記のようなTreeNode管理でした。


これを最初に書いておけば、流れは違っていたでしょうね。

引用:

((※)はTreeNodeオブジェクトでもいいと思いますが)


むしろ、そうした方が良いでしょう。
TreeView で管理すると、TreeView.Nodes プロパティに追加するための手続きが必要なのですから...

TreeNodeCollection 型で管理されてはどうでしょう。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
alf
常連さん
会議室デビュー日: 2005/11/15
投稿数: 22
お住まい・勤務地: 岐阜県・愛知県
投稿日時: 2006-08-03 15:35

 ↑なぜか区切り線('|')が、かなりずれて表示されてしまってますが・・・(泣)

 投稿者のalfです。
 じゃんぬねっとさん、レスポンス有難うございます。
 (確かに最初から現状をありのまま伝えていたら、より相応しいアドバイスが
 頂けていたかもしれません・・・以後気をつけます)
 
 結局、インターフェイス側のXMLを割り当てたTreeNodeはTreeView型ではなく、
 御指摘どおりTreeNodeCollection型で持たせることにしました。

 インターフェイスとアプリ間でNodeが参照コピーできない以上、アプリ上で
 Nodeに対する変更処理が行われた場合はNodeをコピーするためにインターフ
 ェイスに対してNode全体を渡す事でインターフェイスとアプリ間でNodeの同
 期を図っています。

 インターフェイスとのやり取りの際に、引数(Node全体)が一つ増えてしまっ
 たものの代わりに公開するインターフェイスのメソッド数が減らせれたので
 これで進めようと思います。

 皆様、色々と有難うございました。

スキルアップ/キャリアアップ(JOB@IT)