Top > プログラミング > .NET Tips> TreeViewのノードをDrag&Dropにより移動、コピーできるようにする

TreeViewのノードをDrag&Dropにより移動、コピーできるようにする」への評価、コメント

評価

良い / 悪い = 29 / 5 (「良い」の割合 = 0.853 , 人気度 = 1.306

評価する

コメント一覧


通常のコメント
匿名 2018/04/2 (Mon) 18:50:51
移動元がトップレベル以外の場合、消えません。

通常のコメント
管理人 2012/02/7 (Tue) 23:12:03
> VB側のIsChildNode関数で、XML文中の変数名が使用される変数名と異なっていました。

遅くなりましたが、修正します。ご報告ありがとうございました。

通常のコメント
村瀬 2011/11/24 (Thu) 12:30:40
いつもお世話になっています。
些事ですが、警告が出たので報告します。

VB側のIsChildNode関数で、XML文中の変数名が使用される変数名と異なっていました。

通常のコメント
管理人 2011/08/2 (Tue) 03:37:05
>>「マイクロソフトサポート技術情報」では同じTreeView内のドラッグ&ドロップしか許可していません
>
>treeView1←→treeView2 のように異なるTreeView間のD&Dも可能になっています。

自分でもどのような意味でこのように書いたのか忘れてしまったのですが、コードを見ると、「同じTreeView内のドラッグ&ドロップしか許可していません」は「同じTreeView内のドラッグ&ドロップを許可していません」の間違いのようです。

次の機会に修正します。ご報告ありがとうございました。

通常のコメント
kato 2011/08/2 (Tue) 02:32:03
もし記事の文意を取り違えてたらすみません。

>「マイクロソフトサポート技術情報」では同じTreeView内のドラッグ&ドロップしか許可していません

とありますが、「マイクロソフト~」では
this.treeView1.DragDrop += new System.Windows.Forms.DragEventHandler(this.treeView_DragDrop);
this.treeView2.DragDrop += new System.Windows.Forms.DragEventHandler(this.treeView_DragDrop);
のようにtreeView1とtreeView2で共通のイベントハンドラを用いており、
treeView1←→treeView2 のように異なるTreeView間のD&Dも可能になっています。

通常のコメント
クィーンオブザイヤー 2010/08/10 (Tue) 21:41:30
とても良い記事です。

下のDU39氏が質問しているようなので答えます。

>IsChildNode()関数中の
>ElseIf Not childNode.Parent Is Nothing Then
>Return IsChildNode(parentNode, childNode.Parent)
>の部分ですが、ここの意図は何でしょうか?

[source]と target の関係が「親と子」でない場合は、「親と孫」の関係になっていないか調べています。target の親を辿ることで再帰的に走査しています。target の親が Nothing つまりルートノードになったところで target の先祖全てを調べたことになります。

>これだと、先祖ノードにはドラッグできなくなります。

子孫ノードにドラッグできない、の間違いでは?
階層が無限ループ化してしまうのを防ぐための仕様です。

通常のコメント
DU39 2010/06/25 (Fri) 12:05:27
何度も追記申し訳ございません。

IsChildNode()関数中の

ElseIf Not childNode.Parent Is Nothing Then
Return IsChildNode(parentNode, childNode.Parent)

の部分ですが、ここの意図は何でしょうか?
これだと、先祖ノードにはドラッグできなくなります。

通常のコメント
DU39 2010/06/25 (Fri) 11:58:38
単純にsourceとtargetを逆にすると、先祖すべてにドロップできなくなってしまいました。

評価の理由
DU39 2010/06/25 (Fri) 11:55:18
評価:良い
細かいところまでカスタマイズされていて実用的です。
ところで、ドロップ先が親出ないことの判定個所で、sourceとtargetが逆になっています。

評価の理由
大変お世話になっているもの 2010/06/11 (Fri) 16:11:45
評価:良い
何とか極意などの書籍を何冊か参照しながらプログラミングしていますが、こちらの書籍などでも解決できない技術的に高度な問題がここで勉強させて頂き、解決された事が多々あります。このたびもありがとうございました。

通常のコメント
匿名 2010/02/19 (Fri) 13:08:21
ごめんなさい。消えないです。

通常のコメント
匿名 2010/02/19 (Fri) 12:50:31
ドラッグ開始ノードでドロップするとアイテムが消えますね

通常のコメント
匿名 2008/06/16 (Mon) 13:04:37
この方法だと、ノードをドラッグして自分自身の上にドロップすると、そのノードは消えてしまいませんか?

通常のコメント
nao 2008/06/14 (Sat) 14:08:04
すばらしい。感謝感激です。

評価の理由
名無し 2007/01/24 (Wed) 16:25:40
評価:良い
ズバリ、これがやりたかった。

評価の理由
Gyo 2006/12/1 (Fri) 19:56:05
評価:良い
とっても、とっても役に立ちました。ありがとうございました。

評価の理由
C#初心者 2006/11/22 (Wed) 11:26:57
評価:良い
メソッドがカプセル化されていたから

評価の理由
ryu 2005/04/5 (Tue) 15:50:18
評価:良い
今まではマイクロソフトの技術情報を見ておりましたが
こちらのサイトでの説明の方が解り易い事と、知りたい
情報が早く見つけられるところがすばらしいと思います。
今では「どぼん!のプログラミング道」様で無い情報
だけMSのサポート技術情報を見るようになってしまいました。
これからも頑張って下さい。有難う御座いました。

コメントの投稿

[説明]