Zum Inhalt springen
Der Guide für ein smartes Leben.
KOPIE KOMPLETT

Teil 6: Projekt-Manager versus Visual-Basic-2005-Mangel

Autor: Redaktion pcmagazin • 31.10.2006 • ca. 0:55 Min

Alle Aktionen werden bisher über Buttons ausgelöst, besser wäre Drag & Drop, was unter VB8 einfach ist. In drei immer gleichen Schritten fügen Sie diese Funktionalität in Ihre Projekte ein....

Alle Aktionen werden bisher über Buttons ausgelöst, besser wäre Drag & Drop, was unter VB8 einfach ist. In drei immer gleichen Schritten fügen Sie diese Funktionalität in Ihre Projekte ein.

Projekt-Manager versus Visual-Basic-2005-Mangel
© Archiv

Als Erstes setzen Sie die AllowDrop-Eigenschaft für die Steuerelemente, die Drop zulassen sollen, auf True. Das geschieht im Eigenschaftenfenster oder zur Laufzeit im Programmcode wie etwa in der Ereignisprozedur Form_Load.

Private Sub Form1_Load(...) Handles
MyBase.Load ...
TextBox1.AllowDrop = True
Label2.AllowDrop = True
...
End Sub

Danach folgen noch zwei Schritte. Die Steuerelemente, für die AllowDrop = True ist, werden beim "Einschweben" des Kopierobjekts, d.h. in der DragEnter-Ereignisprozedur aktiviert. Dafür schreiben Sie die Prozedur File- DropActivate, die Sie dann für alle anderen Objekte nutzen, bei denen "gedropt" werden soll.

Private Sub TextBox1_DragEnter(...) _
Handles TextBox1.DragEnter
...
FileDropActivate(e)
...
End Sub
Sub FileDropActivate(ByVal e As
System.Windows.Forms.DragEventArgs)
If
e.Data.GetDataPresent(DataFormats.FileD
rop) Then
e.Effect = DragDropEffects.Copy
Else
e.Effect = DragDropEffects.None
End If
End Sub

Die eigentliche Drop-Aktion wird in der jeweiligen DragDrop-Prozedur aufgerufen. Hier haben Sie die Kopieraktion für Dateien in die selbstständige Prozedur GetDroppedFiles ausgelagert. Auch diese verwenden Sie so für alle entsprechenden Aktionen.

Private Sub TextBox1_DragDrop(...)
Handles TextBox1.DragDrop

In GetDroppedFiles finden Sie die Lösung, mit der Sie eine beliebige Anzahl von markierten Datei- und Ordnernamen per Drop einlesen.

Function GetDroppedFiles(...) As String