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.
© Copyright 1998-2000 J.Behling
Weitergabe und Druck (auch in Teilen, mit Ausnahme von Privatgebrauch) ohne ausdrückliche Genehmigung der Autorin untersagt.