Immer wieder im Forum gefragt: "Wie kann ich Dateien aus einer einer FileListBox in eine zweite FileListBox verschieben oder auch kopieren?" Die Antwort ist recht einfach, unterstützt die VB-FileListBox doch OLE Drag & Drop. Private Sub Form_Load() ' File1 dient als Quelle File1.OLEDragMode = 1 ' File2 dient als Ziel File2.OLEDropMode = 1 End Sub Werden nun eine oder mehrere Dateien aus File1 nach File2 gezogen, wird autom. das File2_OLEDragDrop-Ereignis ausgelöst: Private Sub File2_OLEDragDrop(Data As DataObject, Effect As Long, _ Button As Integer, Shift As Integer, X As Single, Y As Single) ' Datei kopieren / verschieben Dim nPos As Integer Dim sFile As String Dim i As Integer Dim sPath As String If Data.Files.Count > 0 Then For i = 1 To Data.Files.Count sFile = Data.Files(i) nPos = InStrRev(sFile, "\") sFile = Mid$(sFile, nPos + 1) ' Zielpfad sPath = File2.Path & IIf(Right$(File2.Path, 1) <> "\", "\", "") ' Kopieren FileCopy Data.Files(i), sPath & sFile ' Falls verschieben -> Originaldatei jetzt löschen Kill Data.Files(i) Next i ' Ziel-Dateiliste aktualisieren File2.Refresh ' Falls verschieben, Quell-Dateiliste aktualisieren File1.Refresh End If End Sub So, und nun gestalten wir das Ganze noch ein wenig ansprechender, indem wir ein PopUp-Menü zur Auswahl der Aktion einblenden. Erstellen Sie hierzu mit dem VB-Menüeditor folgendes Menü: PopUp (Name: MenuPopUp, Visible: False) ...&Kopieren (Name: mnuPopUp, Index: 0) ...&Verschieben (Name: mnuPopUp, Index: 0) Beim Ziehen der Datei auf File2 soll nun zunächst ein PopUp-Menü angezeigt werden. Je nach Auswahl sollen die Datei dann entweder kopiert oder verschoben werden. Fügen Sie in den Allgemein-Teil der Form folgende Deklaration: Dim oFiles As DataObject Im File2_OLEDragDrop-Ereignis merken wir uns die Dateien und zeigen das PopUp-Menü an: Private Sub File2_OLEDragDrop(Data As DataObject, Effect As Long, _ Button As Integer, Shift As Integer, X As Single, Y As Single) If Data.Files.Count > 0 Then Set oFiles = Data ' PopUp-Menü anzeigen PopupMenu MenuPopUp End If End Sub Erst bei Auswahl eines Befehls aus dem PopUp-Menü wird die entsprechende Aktion ausgeführt: Private Sub mnuPopUp_Click(Index As Integer) ' Dateien kopieren / verschieben Dim nPos As Integer Dim sFile As String Dim i As Integer Dim sPath As String With oFiles For i = 1 To .Files.Count sFile = .Files(i) nPos = InStrRev(sFile, "\") sFile = Mid$(sFile, nPos + 1) ' Zielpfad sPath = File2.Path & IIf(Right$(File2.Path, 1) <> "\", "\", "") ' Kopieren FileCopy .Files(i), sPath & sFile ' Falls verschieben -> Originaldatei jetzt löschen If Index = 1 Then Kill .Files(i) Next i End With ' Ziel-Dateiliste aktualisieren File2.Refresh ' Falls verschieben, Quell-Dateiliste aktualisieren If Index = 1 Then File1.Refresh End Sub Dieser Tipp wurde bereits 22.329 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevAniGif (VB/VBA) Anzeigen von animierten GIF-Dateien Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Tipp des Monats Mai 2024 Hermann Röttger Wochentage eines Datumsbereichs ermitteln Wochentage eines Datumsbereichs ermitteln, optional mit Feiertagsberechnung TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |