C#: Drag&Drop

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

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

Danke
Hallo Martin,
Jetzt funktionierts!
Danke, Chris