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 9.772 mal aufgerufen.
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv (einschl. Beispielprojekt!) Ein absolutes Muss - Mehr als 650 MByte geballtes Wissen! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - Online-Update-Funktion u.v.m. |
Access-Tools Vol.1 ![]() Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB Buchempfehlung Tipp des Monats Arne Elster Stop Button der IDE abfangen End-Anweisung und Stop-Button beim Ausführen dre Anwendung innerhalb der IDE abfangen, um Subclassing u.ä. rechtzeitig abzubrechen sevOutBar 3.0 ![]() Vertikale Menüleisten á la Outlook Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. |
||||||||||||||||
|
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. |
|||||||||||||||||


FileListBox: Kopieren/Verschieben von Dateien



