Dropzone in eine Formularanwendung

12/10/2009 - 10:00 von Orazio Di Marco | Report spam
Hallo,

folgendes Problem.
Ich benötige für meine Anwendung eine Art Dropzone für die verarbeitung von
Dateien aus dem Dateisystem.
Ich hab mir das so vorstellt das ich dem User eine Flàche zur Verfügung
stelle wo er seine Dateien "ablegen" kann.
Ich möchte eigentlich nicht das der User überall in der Anwendung etwas
draufziehen kann, sondern lediglich auf die von mir
bereitgestellte flàche.

Ich hab schon wirklich alles im Netz durchsucht, aber leider gibt es dazu
absolut keine Codebeispiele.

Kann mir jemand helfen?

gruß
 

Lesen sie die antworten

#1 Armin Zingler
12/10/2009 - 10:25 | Warnen spam
Orazio Di Marco schrieb:
Hallo,

folgendes Problem.
Ich benötige für meine Anwendung eine Art Dropzone für die verarbeitung von
Dateien aus dem Dateisystem.
Ich hab mir das so vorstellt das ich dem User eine Flàche zur Verfügung
stelle wo er seine Dateien "ablegen" kann.
Ich möchte eigentlich nicht das der User überall in der Anwendung etwas
draufziehen kann, sondern lediglich auf die von mir
bereitgestellte flàche.

Ich hab schon wirklich alles im Netz durchsucht, aber leider gibt es dazu
absolut keine Codebeispiele.

Kann mir jemand helfen?



Du musst lediglich ein Panel (oder anderes Control) dort platzieren und auf
die Drag*-Ereignisse reagieren. Hab grad zufàllig was da:

Private Sub Form_DragEnter( _
ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) _
Handles panel1.DragEnter

If e.Data.GetDataPresent(DataFormats.FileDrop) Then
e.Effect = System.Windows.Forms.DragDropEffects.Copy
End If

End Sub

Private Sub Form_DragDrop( -
ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) _
Handles panel1.DragDrop


If e.Data.GetDataPresent(DataFormats.FileDrop) Then
If (e.Effect And DragDropEffects.Copy) = DragDropEffects.Copy Then
Dim Files = DirectCast(e.Data.GetData(DataFormats.FileDrop), String())
'Array Files verarbeiten

End If
End If

End Sub

Ach ja, und panel1.allowdrop auf True setzen.

Steht aber auch in der Hilfe beschrieben:
http://msdn.microsoft.com/de-de/lib...ebfwe.aspx
Wie immer auch per [F1] erreichbar.

Armin

Ähnliche fragen