C # перетащите файлы в форму - PullRequest
18 голосов
/ 18 декабря 2011

Как я могу загрузить файлы в форму путем перетаскивания?

Какое событие появится?

Какой компонент мне использовать?

А как определить имя файла и другие свойства после перетаскивания его в форму?

Спасибо!

Код

   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)){

        }
   }

Хорошо, это работает.

Как насчет файлов?Как я могу получить имя файла и расширение?

и это только действие dragEnter.

Ответы [ 2 ]

29 голосов
/ 18 декабря 2011

Этот код перебирает и печатает полные имена (включая расширения) всех файлов, перетаскиваемых в ваше окно:

if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
      string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
      foreach (string filePath in files) 
      {
          Console.WriteLine(filePath);
      }
}
5 голосов
/ 18 декабря 2011

Проверьте ссылку ниже для получения дополнительной информации

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());
        }
      }
    }
  }
}

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...