
VisualStudio2008 C# で開発をしています。
ListViewにエクスプローラーからファイルをドラッグ&ドロップしようとしているのですが、うまくできません。
いろいろと調べて下記の3点を抑えればできるのかと思っていますが、思ったように動きません。
ListViewのAllowDrop=True;
DragEnterイベントでe.Effect = DragDropEffects.Copy;
DragDropイベントでDropした後の処理
きちんと記述しているつもりですが、DragEnterイベントが発生しません。
ちなみに、同じListViewの要素をドラッグ&ドロップするとDragEnterイベントは発生するので、あくまで外部(エクスプローラーなど)からドラッグされたものが受け付けないようです。
何が原因なのでしょうか?
ほかに設定などあるのでしょうか?
No.2ベストアンサー
- 回答日時:
ん~ CS2008の環境が無いので ・・・
VirtualPC2007 + Vista Ultimate +VB2008EE
といった環境で フォームにリストビューを貼り付け
Form_Loadで ListView1.AllowDrop=True
ListView1_DragEnterで e.Effect = DragDropEffects.Copy
としただけのフォームで確認しましたが
ドロップ禁止状態にはなりませんでした
DragEnterイベントも発生しております
ListViewにMouseDownイベントを追加して
MessageBox.Show( listBox1.AllowDrop.ToString() );
などで本当に Trueに設定されているのかを確認してみましょう
解決しました。
コーディングなどには何の問題もなく、VisualStudioを「管理者として実行」で動かすとこのような状態になることが分かりました。
ソリューションファイルをダブルクリックして実行すると、ドロップできる状態になりました。
redfox63様
ご丁寧に回答いただき本当にありがとうございました。
No.1
- 回答日時:
DragEnterやDragDropに記述したコードを支障の無い範囲で公開してみましょう
または他人が試して現象を確認できる最小限のコードを提示しましょう
フレームワークは何を使うのか .net Framework 2.0/3.0/3.5
アプリケーションのタイプは何なのか WindowsForm/WebForm
ListViewだから WindowsFormでしょうけど ・・・
AllowDrop=True;
はプロパティで設定したのでしょうか? それともコードですか
ListViewへドラッグした際にカーソルの変化はあるのでしょうか
黒丸に斜線のドロップ禁止のままなのでしょうか
ご返答ありがとうございます。
ご指摘の点を記述させていただきます。
// DragEnter
private void ListView1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.Copy;
}
}
//DragDrop(ここの内容は特に意味はありません)
private void ListView1_DragDrop(object sender, DragEventArgs e)
{
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
}
【環境】
.net Framework3.5
WindowsForm
AllowDropはプロパティでもコードでも同じでした。
カーソルの変化もなく、ご指摘のドロップ禁止状態のままです。
DragEnterの↓の部分を消してみても同じでした。
if (e.Data.GetDataPresent(DataFormats.FileDrop))
ちなみにOSはVistaを使っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数選択のListBoxでClickイベ...
-
C#でドラッグ&ドロップが機能し...
-
【ASP.NET】マスターページに配...
-
リストビュー内でのドラッグ&...
-
getParameterで値が取得できず...
-
VBAで一時中断したプログラムの...
-
コネクション・セッション・ト...
-
Media Player のスクリーンショ...
-
aspxをhtmlに変換する方法について
-
ログイン履歴
-
PHPからWindowsログインユーザ...
-
今日はみんなベストアンサー押...
-
WCFのwsDualHttpBindingについて
-
Ctrlキーを押しながらのダブル...
-
XMLHTTPを用いて認証が必要なUR...
-
.netのAjaxでドラッグアンドド...
-
Windows XP スタイルのデザイン...
-
Fancyboxのiframe内に閉じるボタン
-
【HTML /CSS】ヘッダー右上のず...
-
MFC ボタンのEnableについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数選択のListBoxでClickイベ...
-
【ASP2.0】TextBoxのフォーカス...
-
ポストバック時の画面スクロー...
-
slick.jsによるスライダー実装...
-
【VB6】 変数1 = 変数1 Or $H2
-
C#でドラッグ&ドロップが機能し...
-
自作exeを常駐させるとPCがシャ...
-
リストビュー内でのドラッグ&...
-
ポストバック(__doPostback)へ...
-
【ASP.NET】マスターページに配...
-
aspxファイル実行時の表示順に...
-
ドラッグドロップ(AllowDrop)に...
-
Ctrl+vのイベントを解除
-
treeview展開イベント(VS2010C++)
-
TreeViewの制御について
-
[ASP.NET] ページ内でジャンプ。
-
DragEnterイベントについて(VS...
-
コネクション・セッション・ト...
-
Accessの画面更新を一時的に停...
-
VBAで一時中断したプログラムの...
おすすめ情報