C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
Re[3]: ドラッグアウト
(過去ログ 75 を表示中)
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法/規約
トピック表示
ランキング
記事検索
過去ログ
[トピック内 4 記事 (1 - 4 表示)] <<
0
>>
■43791
/ inTopicNo.1)
ドラッグアウト
▼
■
□投稿者/ レイバー
(1回)-(2009/11/19(Thu) 02:34:01)
分類:[C#]
オブジェクトをドラッグしてウィンドウを超え、フォルダに移動する、という処理を書くには、なにとなにを実装すればよいのでしょう?
逆はできていて、
・ドラッグを受けるコントロールのAllow.Dropをtrueにする。
・DrapEnterイベントを書く。
・DragDropイベントを書く。
とすることで、ドラッグ&ドロップを受けることはできています。
逆のドラッグ&ドロップを受けるページは結構見かけるのですが、ドラッグアウトのページは探し方が悪いのか、見つけることができないでいます。
よろしくお願いします。
引用返信
編集キー/
編集
■43792
/ inTopicNo.2)
Re[1]: ドラッグアウト
▲
▼
■
□投稿者/ れい
(860回)-(2009/11/19(Thu) 03:47:21)
■
No43791
(レイバー さん) に返信
> オブジェクトをドラッグしてウィンドウを超え、フォルダに移動する、という処理を書くには、なにとなにを実装すればよいのでしょう?
フォルダとはエクスプローラーのフォルダですね?
既にファイルシステム上に存在する「ファイル」もしくは「フォルダ」を
エクスプローラーや他のアプリケーションにドロップするのは
DataObjectにFileDropを指定してパス文字列を渡すだけで出来ます。
これはあちこちにサンプルがあります。
DataFormats.FileDropやDataObjectなどで探すとすぐに出てきます。
その他のオブジェクトを「ファイル」としてドロップするのはなかなか困難です。
・オブジェクトのストリームとしての表現を作成
・OLE処理のきちんと行えるDataObjectを自分で実装する
・DataObjectにFileDescriptorとしてファイルとしての情報を登録する
・DataObjectにファイルの中身を示すIStreamを登録する
・ドロップ後、要求に応じてファイルの中身を返す
・完了後、なんとかしてIStreamを廃棄する
などの処理が必要です。
で、これがかなりめんどくさい処理になります。
ドロップが起きる瞬間、つまりQueryContinueDragでDragActionがDropになるときに
ファイルを作成し、そのパスをFileDropとして返すのが楽です。
この場合、ファイルを作成している間はエクスプローラー・アプリ共に停止するのが問題です。
この辺にもう少し丁寧に書いてあります。
http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/14b5f137-f2fc-4d28-b79d-2635bdb5d8b8
引用返信
編集キー/
編集
■43796
/ inTopicNo.3)
Re[2]: ドラッグアウト
▲
▼
■
□投稿者/ レイバー
(2回)-(2009/11/19(Thu) 09:30:56)
■
No43792
(れい さん) に返信
れいさん。早速ありがとうございました。
いただいたキーワードで探してみます。
探せなかったのは探す言葉がわからなかったのでした。
助かりました。
早速探してみて読解中です。
またわからないところが会ったらよろしくお願いします。
引用返信
編集キー/
編集
■43844
/ inTopicNo.4)
Re[3]: ドラッグアウト
▲
▼
■
□投稿者/ レイバー
(3回)-(2009/11/19(Thu) 21:54:35)
れいさん。
昨日は、大変有益なご示唆をいただきまして、ありがとうございました。
http://www.atmarkit.co.jp/fdotnet/dotnettips/384expdragdrop/expdragdrop.html
を参考に、トライ&エラーした結果(といってもたいしたことはしてないですが)、ドラッグアウトできるようになりました。
感謝します。
解決済み
引用返信
編集キー/
編集
トピック内ページ移動 / <<
0
>>
このトピックに書きこむ
過去ログには書き込み不可
管理者用
-
Child Tree
-