Entwickler-Ecke

WinForms - Filter für DragAndDrop


pimpl - Sa 19.05.12 13:03
Titel: Filter für DragAndDrop
Hallo alle!

ich habe eine Listview mit DragAndDrop allowed.
nun möchte ich aber nur bestimmte Dateiformate für das DragAndDrop zulassen, nämlich Bilder(.jpg, .bmp., .png, etc.)
leider weiß ich nicht, wie ich dies realisiere.
folgender code bringt nicht das gewünschte ergebnis:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
  private void listBox1_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.Bitmap))
                e.Effect = DragDropEffects.All;
            else
                e.Effect = DragDropEffects.None;
        }


Habt ihr eine Idee? Vielen Dank für die Hilfe

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
Moderiert von user profile iconChristian S.: Topic aus Basistechnologien verschoben am Sa 19.05.2012 um 13:48


jaenicke - Sa 19.05.12 13:36

Hast du einmal versucht das im Event DragOver zu machen?


Th69 - Sa 19.05.12 14:58

Hallo pimpl,

wenn du Drag&Drop aus dem Windows-Explorer abfragen willst (d.h. Dateien), dann mußt du dafür DataFormat.FileDrop benutzen.

Ein Beispiel dazu findest du unter Objekte in ListView ziehen (drag and drop) [http://www.c-sharp-forum.de/viewtopic.php?t=95111].

Und dann entsprechend die Path.GetExtension-Methode benutzen, um die verschiedenen Dateiformate (vor) zu filtern. Jedoch mußt du beachten, daß evtl. eine Datei einfach unbenannt wurde, so daß du auch beim Einlesen ein falsches Dateiformat bedenken mußt (d.h. Exception fangen!).