D
Vielen Dank für deine Mühe Matthias!
Es hat jedoch trotzdem nicht funktioniert
Allerdings bin ich jetzt superhappy, denn nach vielem herumschnüffeln und ausprobieren,hab ich jetzt endlich einen funktionierenden Weg gefunden,
und da ich im Internet nicht eine einzige Deutsche Dokumentation dazu gefunden habe werde ich dem geneigten Leser hier mal einen funktionierenden Lösungsweg aufzeigen:
Schritt 1.
- Anfangen tuen wir damit der Listboxeigenschaft Allowdrop den Wert true zuzuweisen.
lstPlaylist->AllowDrop = true;
Schritt 2.
- Definieren der Funktion zum behandeln des DragEnter-Ereignisses der Listbox.
lstPlaylist->DragEnter += gcnew DragEventHandler( this, &Form1::Form1_DragEnter );
Schritt 3.
- Definieren der Funktion zum behandeln des DragDrop-Ereignisses der Listbox.
DragDrop += gcnew DragEventHandler( this, &Form1::Form1_DragDrop );
Schritt 4.
- Die Funktion DragEnter der Listbox Implementieren.
private: System::Void lstPlaylist_DragEnter(System::Object^ sender, System::Windows::Forms::DragEventArgs^ e)
{
if ( e->Data->GetDataPresent(DataFormats::FileDrop) )
{
e->Effect = DragDropEffects::All;
}
}
Schritt 5. ( Der letzte Schritt - So schwer wars doch gar nicht )
- Die Funktion DragDrop der Listbox Implementieren.
private: System::Void lstPlaylist_DragDrop_1(System::Object^ sender, System::Windows::Forms::DragEventArgs^ e)
{
// Filedrop Daten behandeln
if ( e->Data->GetDataPresent( DataFormats::FileDrop ) )
{
// Für den Fall, dass der Benutzer mehrere Dateien ausgewählt hat,
// werden die Dateinamen einem String* Array zugewiesen.
array<String^>^files =
(array<String^>^)e->Data->GetData(DataFormats::FileDrop );
try
{
// Alle Indizes des Array durchlaufen und der Playlist
// hinzufügen.
for (int i = 0; i+1 <= files->GetLength(0); i++)
{
lstPlaylist->Items->Add(files[ i ]);
}
}
catch ( Exception^ ex )
{
MessageBox::Show( ex->Message );
return;
} // Ende von try/catch
} // Ende von If
} // Ende von DragDrop
Ich hoffe diese Anleitung wird für den einen oder anderen verzweifelten eine Hilfe sein