2011-12-18 16 views
17

ドラッグアンドドロップしてフォームにファイルをロードするにはどうすればよいですか?C#ドラッグしてファイルを作成して

どのイベントが表示されますか?

私はどのコンポーネントを使用しますか?

また、フォームにドラッグアンドドロップした後にファイル名やその他のプロパティを特定するにはどうすればよいですか?

ありがとうございました!

コード

private void panel1_DragEnter(object sender, DragEventsArgs e){ 
     if (e.Data.GetDataPresent(DataFormats.Text)){ 
       e.Effect = DragDropEffects.Move; 
       MessageBox.Show(e.Data.GetData(DataFormats.Text).toString()); 
     } 
     if (e.Data.GetDataPresent(DataFormats.FileDrop)){ 

     } 
    } 

OK、これは動作します。

ファイルについてはどうですか?ファイル名と拡張子を取得するにはどうすればよいですか?

これは唯一dragEnterアクションです。

+0

さまざまなドラッグ関連イベントはすべて、調整された方法で一緒に処理されます。関連する文書を読んだことがありますか? –

+1

[ファイルをAC#アプリケーションにドラッグアンドドロップするにはどうすればいいですか?](http://stackoverflow.com/questions/68598/how-do-i-drag-and-drop-files-into-ac-sharp) -application) –

答えて

29

このコードは、ループを通過し、すべてのファイルの(拡張子を含む)の完全な名前を印刷し、あなたのウィンドウにドラッグ:

if (e.Data.GetDataPresent(DataFormats.FileDrop)) 
{ 
     string[] files = (string[])e.Data.GetData(DataFormats.FileDrop); 
     foreach (string filePath in files) 
     { 
      Console.WriteLine(filePath); 
     } 
} 
5

詳細

http://doitdotnet.wordpress.com/2011/12/18/drag-and-drop-files-into-winforms/

private void Form2_DragDrop(object sender, DragEventArgs e) { 
    if (e.Data.GetDataPresent(DataFormats.FileDrop)) { 
    string[] filePaths = (string[])(e.Data.GetData(DataFormats.FileDrop)); 
    foreach (string fileLoc in filePaths) { 
     // Code to read the contents of the text file 
     if (File.Exists(fileLoc)) { 
     using (TextReader tr = new StreamReader(fileLoc)) { 
      MessageBox.Show(tr.ReadToEnd()); 
     } 
     } 
    } 
    } 
} 
については、以下のリンクをチェック

ありがとうございました。

+1

品質に関する回答には、リンクの内容の要約が必要です。自分のブログへのリンクを投稿することには注意が必要です。スパムのように見えます。 –

+0

okありがとうコーディーグレイ。ウルのコメントに従う – doit4dotnet