DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ドラッグ&ドロップによるファイル名の取得

環境/言語:[Xp C# .NetFramework 1.1 VisualStudio 2003]
分類:[.NET]

自作ユーザコントロールに画像ファイルをドラッグ&ドロップされた時に、
その画像ファイルのパスを取得し、
そのパスを引数にしてNewPhotoResistorというメソッドを呼び出したいのですが、
下記ソースの☆印のとこで処理がイベントハンドラから抜け出してしまい、
その下のメソッド呼び出しが実行されません。
ここのTipsを参考に組んでみたのですが、
MSDNなどを調べても原因の検討がつきません。

以下が該当部のソースです。

public class Field : System.Windows.Forms.UserControl
{

//画像ファイルをドラッグした時の処理
private void Field_DragEnter(object sender,System.Windows.Forms.DragEventArgs e)
{
 
 if( e.Data.GetDataPresent(DataFormats.FileDrop) )
 {
   e.Effect = DragDropEffects.Copy;
 }
 else e.Effect = DragDropEffects.None;

}


//画像をドロップされた時の処理
private void Field_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
{

 if( e.Data.GetDataPresent(DataFormats.FileDrop) )
 {
  string fileName = (string)e.Data.GetData(DataFormats.FileDrop); //☆ここで処理がイベントハンドラから抜けてしまう
  this.NewPhotoResistor(fileName); //このメソッド呼び出しを行いたい
 }

}

 …
}
>   string fileName = (string)e.Data.GetData(DataFormats.FileDrop); //☆ここで処理がイベントハンドラから抜けてしまう

どぼんさんのTips集の中にもありますが、エクスプローラなどからドロップ
されたファイルのパスは文字列配列で返されます。

こちらを参考にしてください。
http://dobon.net/vb/dotnet/control/droppedfile.html
■No7007に返信(antさんの記事)
>>  string fileName = (string)e.Data.GetData(DataFormats.FileDrop); //☆ここで処理がイベントハンドラから抜けてしまう
>
> どぼんさんのTips集の中にもありますが、エクスプローラなどからドロップ
> されたファイルのパスは文字列配列で返されます。
>
> こちらを参考にしてください。
> http://dobon.net/vb/dotnet/control/droppedfile.html

ありがとうございます! & 注意力とチェック不足、申し訳ありません!!
今後、このようなことなきように気をつけます。
string[]型に直したらうまくいきました。
どうもありがとうございました。
解決済みのチェックを入れるのを忘れてしまいました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板