2011-12-18 2 views
17

Jak mogę załadować pliki do formularza przez przeciąganie i upuszczanie?C# przeciągnij i upuść pliki, aby utworzyć

Jakie wydarzenie się pojawi?

Z którego komponentu należy korzystać?

A jak określić nazwę pliku i inne właściwości po przeciągnięciu i upuszczeniu go do formularza?

Dziękujemy!

Kod

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, to działa.

Co z plikami? Jak mogę uzyskać nazwę pliku i rozszerzenie?

i jest to tylko akcja dragEnter.

+0

Różne zdarzenia związane z przeciąganiem są obsługiwane w skoordynowany sposób. Czy znasz odpowiednią dokumentację? –

+1

możliwy duplikat [Jak przeciągnąć i upuścić pliki do aplikacji #?] (Http://stackoverflow.com/questions/68598/how-do-i-drag-and-drop-files-into-ac-sharp -application) –

Odpowiedz

29

Ten kod pętli pełnych nazw (łącznie z rozszerzeniami) wszystkich plików przeciągnięty do okna przez i druk:

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

Sprawdź poniższy link, aby uzyskać więcej informacji

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

Dzięki.

+1

Podsumowanie zawartości łącza jest wymagane do uzyskania wysokiej jakości odpowiedzi. I zachowaj ostrożność, publikując linki do własnego bloga: wygląda to bardzo podobnie do spamu. –

+0

ok dzięki Cody Grey. Podąży za komentarzami – doit4dotnet