プロが教えるわが家の防犯対策術!

使用OSはWindows8で
開発環境はVisualStudio2012 (.NET Framework4.5)です。

ListBox1にドラッグ&ドロップでファイル名を表示する機能を追加したいと思い、以下のようなコードを記述しました。また、ListBox1のイベントととしてListBox1ListBox1_DragEnterとListBox1_DragDropを関連づけました。

この状態でビルドして動作を確認してみると、問題なく動作しました
しかし、debugフォルダ内のEXEファイルを直接起動するとドラッグ&ドロップ不可のマークが出てしまいます。
なにが問題が問題なのか分からず困っています。ご回答お願いします。

private void Form1_Load(object sender, EventArgs e) {
  this.AllowDrop = true;
  ListBox1.AllowDrop = true;
}
private void ListBox1_DragEnter(object sender,System.Windows.Forms.DragEventArgs e) {
  e.Effect = DragDropEffects.Copy;
}
private void ListBox1_DragDrop(object sender,System.Windows.Forms.DragEventArgs e) {
  string[] fileName =(string[])e.Data.GetData(DataFormats.FileDrop, false);
  ListBox1.Items.AddRange(fileName);
}

A 回答 (1件)

記載されたコードを見る限りでは、ドラッグ受け入れについては特に問題なさそうに見えます。


ですので、質問文に記載されたところ以外に問題があるのではないかと思われます。
(ドロップ時処理(ListBox1_DragDrop)はファイル以外がドロップされることを想定していないので問題がありますが、質問内容と無関係なのでここでは触れず)

可能性の1つとして、ドラッグ&ドロップはドラッグ元とドロップ先が双方同じユーザーの権限で動作している必要がありますが、その点は問題ないでしょうか?
どちらか一方のみがUACによって管理者権限に昇格して実行されている場合、両者間でドラッグ&ドロップは不可になります。

そのほかは。。。。
コード内のほかの箇所でなにかやらかしていないかを調べるとか、Load/DragEnterイベントハンドラが外れてしまっていないかとか、実行ファイルを消してリビルドしてみるとか、、、
質問記載内容から読み取れる範囲では明確なところはちょっとおもいつきません。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A