Make your own free website on Tripod.com

VB -44: Listboxen

Die Qual der Wahl...

Wenn sehr viele Elemente zur Wahl stehen, kann es für ein Optionsfeld schnell eng und unübersichtlich werden. Als mögliche Alternative bietet sich hier eine Listbox an. Wir wollen das hier anhand der Auswahl der Rechenart ausprobieren.

Wir entfernen im ersten Frame die Options-Buttons und fügen stattdessen eine Listbox "lstUebung" ein. Wir könnten hier zwar auch gleich die Einträge für die Liste in der Entwicklungsumgebung eingeben (in früheren Versionen war das nicht möglich), meist werden Listboxen jedoch erst zur Laufzeit mit Daten gefüllt. Wir wollen das auch so machen, und zwar dient uns dazu das Form_Load-Ereignis:

     Private Sub Form_Load()
     Dim i As Integer
        For i = 1 To 4
            fraUebung(i).Visible = False    'Rahmen unsichtbar machen
        Next i
        fraUebung(0).Visible = True         'Rahmen sichtbar machen

        lstUebung.AddItem "Zählen"          'Liste initialisieren
        lstUebung.AddItem "Addition mit Symbolen"
        lstUebung.AddItem "Addition"
        lstUebung.AddItem "Subtraktion"
        lstUebung.AddItem "Multiplikation"
        lstUebung.AddItem "Division"

     End Sub
 

Die Listenelemente werden mit der AddItem-Methode hinzugefügt. Da wir die Sortierung der Liste abgeschaltet haben (Sorted=False), erscheinen die Einträge anschließend in der Reihenfolge, in der wir sie eingefügt haben:

Bei längeren Listen, die sonst keine logische Sortierung vorweisen, empfiehlt es sich, die Sortierung einzuschalten, um den Anwender das Finden zu erleichtern.

Jetzt müssen wir nur noch das Click-Ereignis der Liste auswerten. Das sieht ganz ähnlich aus wie vorher die Auswertung unseres Optionsfelds:

     Private Sub lstUebung_Click()
        Select Case lstUebung.ListIndex
        Case 0
            aktiveUebung = "Zählen"         'Uebung merken
            Exit Sub
        Case 1
            MaxErgebnisWert = 9
            MinErgebnisWert = 2
            aktiveUebung = "SymbAddition"   'Uebung merken
            Exit Sub
        Case 2
            aktiveUebung = "Addition"       'Uebung merken
        Case 3
            aktiveUebung = "Subtraktion"    'Uebung merken
        Case 4
            aktiveUebung = "Multiplikation" 'Uebung merken
        Case 5
            aktiveUebung = "Division"       'Uebung merken
        End Select

        fraUebung(0).Visible = False        'aktiven Rahmen unsichtbar machen
        fraUebung(lstUebung.ListIndex - 1).Visible = True 
        'zum Rahmen mit der ausgewählten Rechenart wechseln
     End Sub
 

Die ListIndex-Eigenschaft der Liste gibt uns die Position des ausgewählten Eintrags wieder. Das erste Element einer Liste hat stets den ListIndex 0.

Wir gehen noch einen Schritt weiter und gestatten unserem Anwender auch einen Doppelklick in die Liste:

     Private Sub lstUebung_DblClick()
        lstUebung_Click
        cmdOK_Click
     End Sub
 

Dies hat die gleiche Wirkung wie wenn man zunächst in die Liste einfach klickt und dann den OK-Button drückt.

Beispielprojekt laden

zurück Index weiter


© Copyright 1998-2000 J.Behling EMail schreiben ABC-Ware's Homepage
Weitergabe und Druck (auch in Teilen, mit Ausnahme von Privatgebrauch) ohne ausdrückliche Genehmigung der Autorin untersagt.