Rubrik: Dateisystem · Dateien allgemein | VB-Versionen: VB4, VB5, VB6 | 14.06.03 |
Datei-Mehrfachauswahl an eine ListBox übergeben 2 Dieser Tipp zeigt Ihnen wie sich eine Einfach oder Mehrfachauswahl realisieren lässt. (CommonDialog) | ||
Autor: Stefan Wanitzek | Bewertung: | Views: 17.766 |
www.thundercloud.info | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Im Tipp Datei-Mehrfachauswahl an eine ListBox übergeben wurde Ihnen gezeigt, wie Sie eine Mehrfachauswahl im "Öffnen"-Dialog der CommonDialog-Komponente realisieren können. Doch leider versagt diese Funktion wenn man nur eine Datei auswählt. Dieses Problem lässt sich lösen, indem man String Arrays benutzt.
Kopieren Sie folgenden Code am besten in ein Modul:
Public Sub GetData(oDialog As CommonDialog, _ oList As ListBox, _ Optional ByVal sFilter As String = "Alle Dateien (*.*)|*.*", _ Optional ByVal bClearList As Boolean = True) Dim sFiles() As String Dim i As Long ' ListBox säubern If bClearList Then oList.Clear On Error Resume Next With oDialog .CancelError = True .FileName = "" ' Dateinamen löschen .Filter = sFilter ' Flags für Explorer Style und Mehrfachauswahl übergeben .Flags = &H200 + &H80000 ' alle Dateinamen zusammen dürfen maximal 24KB ' (24576 Bytes) Lang sein. .MaxFileSize = 24576 ' Dialog anzeigen .ShowOpen If Err.Number = 0 Then sFiles = Split(.FileName, vbNullChar) If UBound(sFiles) > 1 Then ' Mehrere Dateien ausgewählt! For i = 1 To UBound(sFiles()) oList.AddItem sFiles(i) Next i Else ' nur eine Datei ausgewählt oList.AddItem sFiles(0) End If End If End With On Error Goto 0 End Sub
Beispiel:Benötigt wird ein CommonDialog (CommonDialog1), eine ListBox (List1) und ein CommandButton (Command1).
Private Sub Command1_Click() GetData CommonDialog1, List1, , False End Sub