C#: Drag&Drop

Von: , Frage gestellt am Mi, 13. Jul 2005

Hallo,

Ich möchte nur Drag und Drop implementieren. Dazu ziehe ich eine Datei vom Explorer auf meine Anwendung. Allerdings ist die Ausgabe nur

onDrop
System.String[]

aber nicht der Dateiname. Was mache ich falsch?
PS: Habe erst vor einigen Tagen mit C# angefangen.
Chris

-------

private void MainForm_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
{
// a file dropped from windows explorer has the formats:
//Shell IDList Array, Shell Object Offsets, DragImageBits, DragContext, InShellDragLoop, FileDrop, FileNameW, FileName

Trace.WriteLine("onDrop");

if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
string test3 = e.Data.GetData(DataFormats.FileDrop, false).ToString();
Trace.WriteLine(test3);
}
}

2 Antworten zu dieser Frage

  1. Antwort von nach 16 Stunden 0 hilfreich
    Re: C#: Drag&Drop

    Hallo auch!

    Die Antwort ist eigentlich ganz einfach, aber ich habe damals auch einige Zeit gebraucht, um dahinter zu kommen...
    Wenn Du DataFormats.FileDrop verwendest, dann kann es natürlich auch sein, dass Du nicht nur eine Datei auf Deine Anwendung droppst, sondern u.U. mehrere. string test3 = e.Data.GetData(DataFormats.FileDrop,
    false).ToString();
    An der Ausgabe "System.String[]" siehst Du auch, dass es sich um ein Array von Strings handelt.

    Wenn Du also schreibst:
    string[] droppedFiles = (string[])e.Data.GetData(DataFormats.FileDrop,false);
    dann hast Du die einzelnen Dateinamen im Array droppedFiles.

    Gruß,
    Martin

    • Antwort von nach 19 Stunden 0 hilfreich
      Danke

      Hallo Martin,
      Jetzt funktionierts!
      Danke, Chris

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!