Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0613: Beispiel für Listboxen mit Mehrfachauswahl

 von 

Beschreibung 

Es folgt ein kurzes Beispiel, wie man eine Mehrfachauswahl sinnvoll nutzt und überprüft.

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

keine

Download:

Download des Beispielprojektes [2,62 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Projekt1.vbp -------------
'------ Anfang Formular "frmHaupt" alias frmHaupt.frm  ------
' Steuerelement: Dateiauswahlliste "filDatei"
' Steuerelement: Schaltfläche "cmdloeschen"
' Steuerelement: Schaltfläche "cmduebernehmen"
' Steuerelement: Listen-Steuerelement "lstDateien"
'Dieser Source stammt von http//www.activevb.de


'Autor: Stefan Paproth
'Mail: Pappi-@gmx.de
'Überarbeitet von Jochen Wierum (JoWi@ActiveVB.de)

Option Explicit

Private Sub cmdloeschen_Click()
    Dim f As Integer
    
    'Schleife von 0 bis Anzahl Einträge in Listbox
    For f = 0 To lstDateien.ListCount - 1
        
        'Sind wir durch?
        'Diese Überprüfung ist notwendig, weil sich die
        'ListCount Eigenschaft ändert, wenn ein Eintrag
        'gelöscht wurde. Die Schleife prüft diese
        'Eigenschaft aber nur einmal und so können
        'Fehler auftreten.
        If lstDateien.ListCount = f Then Exit For
        
        'Wenn Eintrag markiert dann...
        If lstDateien.Selected(f) = True Then
            
            '...Eintrag löschen
            lstDateien.RemoveItem f
            
            'Zähler um 1 zurücksetzen, um das Element, was
            'jetzt auf Position f liegt, erneut zu prüfen
            f = f - 1
        End If
    Next f
    
    cmdloeschen.Enabled = False
End Sub

Private Sub filDatei_Click()
    cmduebernehmen.Enabled = True
End Sub

Private Sub filDatei_DblClick()
    
    'Datei aus der Filelistbox bei Doppelklick in die Listbox einfügen:
    If Right(filDatei.Path, 1) = "\" Then
        lstDateien.AddItem filDatei.Path & filDatei.FileName
    Else
        lstDateien.AddItem filDatei.Path & "\" & filDatei.FileName
    End If
End Sub

Private Sub cmduebernehmen_Click()
    'Datei aus der Filelistbox bei Buttonklick in die Listbox einfügen.
    Dim t As Integer
    
    'In dieser Schleife wird überprüft,
    'welche Einträge markiert wurden.
    'Diese werden dann kopiert.
    For t = 0 To filDatei.ListCount - 1
        If filDatei.Selected(t) = True Then
            If Right(filDatei.Path, 1) = "\" Then
                lstDateien.AddItem filDatei.Path & filDatei.List(t)
            Else
                lstDateien.AddItem filDatei.Path & "\" & filDatei.List(t)
            End If
        End If
    Next t
End Sub

Private Sub lstDateien_Click()
    cmdloeschen.Enabled = True
End Sub
'------- Ende Formular "frmHaupt" alias frmHaupt.frm  -------
'-------------- Ende Projektdatei Projekt1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 2 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von Bakterienkultur am 18.04.2005 um 14:48

Die Eigentschaft RemoveItem x bzw RemoveItem(x) der FileListBoxnexisiert laut meinem VB (Version 6) nicht.
"Objekt unterstützt die Eigenschaft oder Methode nicht"
habe aber noch keine andere Möglichkeit gefunden....

Kommentar von peter sauer am 10.09.2003 um 11:08

zum Löschen markierter Items sollte eine Listbox von hinten nach vorne durchsucht werden

For f = lstDateien.ListCount - 1 To 0 Step -1

damit werden die Probleme umgangen die beim Löschen durch die veränderte Anzahl der Items entstehen