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で質問しましょう!
似たような質問が見つかりました
- バックアップ パソコンからDVDへコピー 5 2022/08/18 14:02
- Illustrator(イラストレーター) プロパティパネルを元に戻せますか 3 2022/05/07 16:44
- Google Drive 【Google ドライブ】どのフォルダに入ったの? 1 2022/10/21 10:08
- マウス・キーボード マウスのクリックボタンの調子が良くないです。 ドラッグ&ドロップしようとするとよく開いてしまいます。 4 2022/03/23 18:20
- Photoshop(フォトショップ) 【Photoshop】画像拡大時に急激に画面外まで拡大してしまうのを制御したい 1 2023/08/25 03:04
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- Excel(エクセル) Excel ヘルプの[ロック解除]、<c0>、</c0> の意味は何ですか? 1 2023/02/20 16:58
- WordPress(ワードプレス) Wordpress 複数プラグインの不具合? 1 2022/10/09 21:52
- Illustrator(イラストレーター) 添付画像の帽子マーク~Tは、既成のフォントに類似フォントがありますでしょうか 1 2022/08/17 20:51
- Excel(エクセル) エクセルのワークシートを簡単に別ファイルにする方法は? 5 2023/01/11 14:50
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数選択のListBoxでClickイベ...
-
ポストバック時の画面スクロー...
-
ポストバック(__doPostback)へ...
-
【ASP2.0】TextBoxのフォーカス...
-
C#でドラッグ&ドロップが機能し...
-
自作exeを常駐させるとPCがシャ...
-
ページ切り替え時の動作 (Page...
-
c# 文字列の最後から1文字削除...
-
WCFのwsDualHttpBindingについて
-
DataGridViewのチェックボック...
-
HTMLボタンの文字色を変え...
-
Accessの画面更新を一時的に停...
-
getParameterで値が取得できず...
-
エクセルVBA 別のブックのユ...
-
submitボタンにvalue属性の値で...
-
グリッドビューでのチェックボ...
-
Q&Aフォームを作成したいのです...
-
PHPからWindowsログインユーザ...
-
コンピュータへの接続数が最大...
-
ブラウザの×ボタン判定
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数選択のListBoxでClickイベ...
-
ポストバック時の画面スクロー...
-
【ASP.NET】マスターページに配...
-
C#でドラッグ&ドロップが機能し...
-
【VB6】 変数1 = 変数1 Or $H2
-
Ctrl+vのイベントを解除
-
【ASP2.0】TextBoxのフォーカス...
-
リストビュー内でのドラッグ&...
-
自作exeを常駐させるとPCがシャ...
-
[ASP.NET] ページ内でジャンプ。
-
ポストバック(__doPostback)へ...
-
aspxファイル実行時の表示順に...
-
ドラッグドロップ(AllowDrop)に...
-
C#のマルチスレッド処理について
-
slick.jsによるスライダー実装...
-
TreeViewの制御について
-
treeview展開イベント(VS2010C++)
-
コネクション・セッション・ト...
-
Accessの画面更新を一時的に停...
-
画面遷移が不正ですと表示されます
おすすめ情報