Christian S. - So 25.04.04 23:11
Titel: [WinForms] Dateien (und Ordner) per Drag 'n Drop empfangen
Dateien (und Ordner) per Drag 'n Drop empfangen
Um Dateien (und Ordner) per Drag 'n Drop aus dem Explorer auf eine Komponente des Programmes zu Empfangen, sind folgende Schritte notwendig:
(1) Bei der entsprechenden Komponente muss "AllowDrop" auf "true" gesetzt werden
(2) Im DragEnter-Event der Komponente ist folgender Code unterzubringen (hier am Beispiel einer Listview):
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| procedure TMainForm.fileList_DragEnter(sender: System.Object; e: System.Windows.Forms.DragEventArgs); begin if (e.Data.GetDataPresent(DataFormats.FileDrop)) then e.Effect := DragDropEffects.Copy else e.Effect := DragDropEffects.None; end; |
(3) Um nun an die Dateien zu kommen, platziert man noch folgenden Code im OnDragDrop-Event (auch am Beispiel einer ListView):
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TMainForm.fileList_DragDrop(sender: System.Object; e: System.Windows.Forms.DragEventArgs); type strArr = Array Of String; var files : strArr; i : Integer; begin files := strArr(e.Data.GetData(DataFormats.FileDrop)); for i:=0 to High(files) do begin
if (System.IO.FileAttributes.Directory and System.IO.File.GetAttributes(files[i])) = System.IO.FileAttributes.Directory then MessageBox.Show('Verzeichnis: '+files[i]) else MessageBox.Show('Datei: '+files[i]); end; end; |
So fertig. Anstatt der MessageBoxes kann man natürlich nun mit den Ordner und Dateien machen, was man will.
Moderiert von jasocul: Beitrag geprüft am 05.05.2006
[meta]Drag Drop .NET Dateien Ordner[/meta]