Bieten Sie Benutzern Steuerelemente zur Auswahl
Die meisten Anwendungen müssen dem Benutzer Auswahlmöglichkeiten bieten, beispielsweise eine einfache „Ja/Nein“-Option oder die Auswahl aus einer Liste mit Hunderten von Möglichkeiten. Visual Basic enthält mehrere Standardsteuerelemente zum Bereitstellen von Auswahlmöglichkeiten. Die folgende Tabelle fasst diese Steuerelemente und ihre Verwendung zusammen.
Wählen Sie mit CheckBox eine einzelne Option aus
CheckBox gibt an, ob ein bestimmter Status ausgewählt (ein) oder gelöscht (aus) ist. Durch die Verwendung einer CheckBox in einer Anwendung kann der Benutzer zwischen „Wahr/Falsch“ und „Ja/Nein“ wählen. Da CheckBoxen unabhängig voneinander funktionieren, können Benutzer beliebig viele CheckBoxen gleichzeitig auswählen. In Abbildung 3.9 kann beispielsweise sowohl Fett- als auch Kursivschrift ausgewählt werden.
CheckBox-App
In diesem Beispiel wird mithilfe einer CheckBox festgelegt, ob Text in normaler Schriftart oder in Kursivschrift angezeigt werden soll. Eine funktionierende Version dieses Beispiels finden Sie unter Check.frm im Anwendungsbeispiel Controls.vbp. Wie in Abbildung 3.10 dargestellt, verfügt diese Anwendung über eine TextBox, eine Beschriftung, eine Befehlsschaltfläche und zwei Kontrollkästchen.
In der folgenden Tabelle sind die Eigenschaftseinstellungen für Objekte in der Anwendung aufgeführt.
Wenn Fett oder Kursiv ausgewählt ist, wird die Value-Eigenschaft der CheckBox auf 1 und auf 0 gesetzt, wenn sie nicht ausgewählt ist. Der Standardwert ist 0. Wenn Sie also die Value-Eigenschaft nicht ändern, wird die CheckBox bei der ersten Anzeige nicht ausgewählt. Sie können die Konstanten vbChecked und vbUnchecked verwenden, um die Werte 1 und 0 darzustellen.
Ereignis in der Checkbox-Anwendung
Wenn auf eine CheckBox geklickt wird, tritt das Click-Ereignis der CheckBox auf. Diese Ereignisprozedur testet, ob die CheckBox ausgewählt ist (d. h. ob Value=vbChecked). Wenn diese Option ausgewählt ist, wird der Text durch Festlegen der Bold- oder Italic-Eigenschaft des Font-Objekts, das von der Font-Eigenschaft der TextBox zurückgegeben wird, in Fett- oder Kursivschrift konvertiert.
PRivateSubchkBold_Click()
IfChkBold.Value=vbCheckedThen 'Wenn ausgewählt.
txtDisplay.Font.Bold=True
Sonst 'Wenn nicht ausgewählt.
txtDisplay.Font.Bold=False
EndIf
EndSub
PrivateSubchkItalic_Click()
IfChkItalic.Value=vbCheckedThen 'Wenn ausgewählt.
txtDisplay.Font.Italic=True
Sonst 'Wenn nicht ausgewählt.
txtDisplay.Font.Italic=False
EndIf
EndSub
Gruppieren Sie Optionen mithilfe von Optionsschaltflächen
Optionsschaltflächen stellen eine Reihe von zwei oder mehr Auswahlmöglichkeiten dar, die dem Benutzer angeboten werden. Im Gegensatz zu CheckBox funktionieren Optionsschaltflächen jedoch immer als Teil einer Gruppe. Wenn Sie also eine Optionsschaltfläche auswählen, werden die anderen Schaltflächen in der Gruppe sofort gelöscht. Definieren Sie eine Optionsschaltflächengruppe, die dem Benutzer mitteilt: „Dies ist eine Reihe von Auswahlmöglichkeiten, wählen Sie eine und nur eine.“
Beispielsweise kann der Benutzer in der in Abbildung 3.11 gezeigten Optionsschaltflächengruppe nur eine der drei Optionsschaltflächen auswählen.
Erstellen Sie eine Optionsfeldgruppe
Alle direkt in einem Formular platzierten Optionsschaltflächen (also nicht in einem Frame oder einer PictureBox) bilden eine Gruppe. Wenn Sie weitere Optionsfeldgruppen erstellen möchten, müssen Sie einige davon in einem Frame oder einer PictureBox platzieren.
Alle Optionsschaltflächen in einem bestimmten Frame bilden eine separate Gruppe, ebenso wie alle Optionsschaltflächen in einer PictureBox. Wenn Sie diese Methode zum Generieren einer unabhängigen Gruppe verwenden, müssen Sie zuerst einen Rahmen oder eine PictureBox zeichnen und dann die Optionsschaltflächen darin zeichnen. Abbildung 3.12 zeigt ein Formular mit zwei Optionsfeldgruppen.
Nachdem eine Gruppe von Optionsschaltflächen im Rahmen gezeichnet wurde, kann der Benutzer nur eine Optionsschaltfläche innerhalb der Gruppe auswählen. Gehen Sie folgendermaßen vor, um Steuerelemente in einem Frame zu gruppieren:
1. Wählen Sie das Frame-Steuerelement in der „Toolbox“ aus und zeichnen Sie den Frame auf dem Formular.
2. Wählen Sie in der „Toolbox“ das OptionButton-Steuerelement aus und zeichnen Sie das Steuerelement in den Frame.
3. Wenn Sie dem Rahmen auch Optionsschaltflächen hinzufügen möchten, wiederholen Sie Schritt 2. Zeichnen Sie zuerst den Rahmen und dann jedes Steuerelement auf dem Rahmen, sodass sich die Steuerelemente beim Verschieben des Rahmens zusammen bewegen. Wenn Sie ein vorhandenes Steuerelement in den Rahmen verschieben, wird das Steuerelement nicht mit dem Rahmen verschoben.
Beachten Sie, dass Sie, wenn Sie vorhandene Steuerelemente in einem Rahmen gruppieren, diese Steuerelemente auswählen und sie dann ausschneiden und in das Rahmen- oder Bildsteuerelement einfügen können.
Kontrollcontainer
Wenn das Steuerelement ein unabhängiges Objekt ist, besteht eine Art Eltern-Kind-Beziehung zwischen dem Formular und dem Steuerelement. Abbildung 3.12 zeigt, wie Optionsschaltflächen in einem Formular oder einem Frame-Steuerelement enthalten sein können.
Um das Konzept von Containern zu verstehen, stellen Sie sich zunächst vor, dass alle Steuerelemente untergeordnete Elemente des Formulars sind, in dem sie sich befinden. Tatsächlich unterstützen die meisten Steuerelemente die schreibgeschützte Parent-Eigenschaft, deren Wert die Form angibt, in der sich das Steuerelement befindet. Als untergeordnetes Element bestimmt ein Steuerelement seine Position im übergeordneten Formular. Die Left-Eigenschaft und die Top-Eigenschaft des Steuerelements sind relativ zum übergeordneten Formular und das Steuerelement kann nicht über die Grenzen des übergeordneten Formulars hinaus verschoben werden. Wenn der Container verschoben wird, wird auch das Steuerelement verschoben, sodass die relative Position des Steuerelements und des Containers unverändert bleibt (d. h. die Left-Eigenschaft und die Top-Eigenschaft des Steuerelements bleiben unverändert).
Optionsfelder auswählen oder deaktivieren
Eine Optionsschaltfläche kann auf folgende Weise ausgewählt werden:
1.Klicken Sie zur Laufzeit mit der Maus auf die Optionsschaltfläche.
2. Verwenden Sie die Tabulatortaste, um die Optionsschaltflächengruppe zu suchen, und verwenden Sie dann die Pfeiltasten (Pfeiltasten), um die Optionsschaltfläche innerhalb der Gruppe zu suchen.
3. Setzen Sie die Value-Eigenschaft mithilfe des Codes optChoice.Value=True auf True
4. Verwenden Sie die im Titel des Labels angegebene Tastenkombination.
5. Um eine Schaltfläche zur Standardschaltfläche in der Optionsschaltflächengruppe zu machen, legen Sie zur Entwurfszeit einfach ihre Value-Eigenschaft auf True fest. Es bleibt ausgewählt, bis der Benutzer eine andere Optionsschaltfläche auswählt oder diese mit einem Code ändert.
Um eine Optionsschaltfläche zu deaktivieren, setzen Sie ihre Enabled-Eigenschaft auf False. Wenn diese Optionsschaltfläche bei laufendem Programm grau wird, bedeutet dies, dass diese Optionsschaltfläche nicht ausgewählt werden kann.
Optionen-App
Das in Abbildung 3.13 gezeigte Formular verwendet Optionsschaltflächen, um den Prozessortyp und das Betriebssystem für einen Computer auszuwählen. Wenn der Benutzer eine Optionsschaltfläche innerhalb der Gruppe auswählt, ändert sich der Titel des Labels, um die aktuelle Auswahl widerzuspiegeln. Eine funktionierende Version dieses Beispiels finden Sie unter Options.frm im Anwendungsbeispiel Controls.vbp.
In der folgenden Tabelle sind die Einstellungen für Objekteigenschaften in der Anwendung aufgeführt.
Ereignisse in der Optionsanwendung
Die Optionsanwendung reagiert auf Ereignisse wie folgt:
Die Click-Ereignisse der ersten drei Optionsfelder weisen der Zeichenfolgenvariablen strComputer auf Formularebene eine entsprechende Beschreibung zu.
Die Click-Ereignisse der beiden letztgenannten Optionsfelder weisen der zweiten Variablen auf Formularebene strSystem eine entsprechende Beschreibung zu.
Der Schlüssel zu dieser Methode liegt in der Verwendung dieser beiden Variablen auf Formularebene, strComputer und strSystem. Diese beiden Variablen haben unterschiedliche Zeichenfolgewerte und die endgültige Auswahl des Optionsfelds hängt von diesen Werten ab.
Jedes Mal, wenn eine neue Optionsschaltfläche ausgewählt wird, aktualisiert der Code für das Click-Ereignis den Wert der entsprechenden Variablen.
PrivateSubopt586_Click()
strComputer=Pentium
CallDisplayCaption
EndSub
Anschließend wird eine Prozedur namens DisplayCaption aufgerufen, die die beiden Variablen verkettet und die Caption-Eigenschaft des Labels ändert.
SubDisplayCaption()
lblDisplay.Caption=Youselecteda&
_strComputer&running&strSystem
EndSub
Die Unterroutine wird verwendet, weil der Vorgang zum Ändern der Caption-Eigenschaft grundsätzlich für alle fünf Optionsfelder gleich ist, mit der Ausnahme, dass der Wert der Variablen je nach Situation variiert. Dadurch wird vermieden, dass bei jedem Click-Ereignis derselbe Code dupliziert wird.
Einzelheiten zu Variablen und Unterprozessen werden in Kapitel 5, „Grundlagen der Programmierung“, besprochen.
Verwenden von ListBox und ComboBox
ListBox und ComboBox bieten Benutzern Auswahlmöglichkeiten. Standardmäßig werden Optionen in einer vertikalen einzelnen Spalte angezeigt, können aber auch auf mehrere Spalten eingestellt werden. Wenn die Anzahl der Elemente die Anzahl überschreitet, die die ComboBox oder ListBox anzeigen kann, wird automatisch eine ScrollBar auf dem Steuerelement angezeigt. Der Benutzer kann dann durch die Liste nach oben, unten, links und rechts scrollen. Abbildung 3.14 zeigt eine einspaltige ListBox.
ComboBox hat die Funktionen von TextBox und ListBox. Mit diesem Steuerelement kann der Benutzer eine Auswahl treffen, indem er Text eingibt oder Elemente in einer Liste auswählt. Abbildung 3.15 zeigt eine ComboBox.
Im Gegensatz zu anderen Steuerelementen, die einen einzelnen Wert enthalten, z. B. die Caption-Eigenschaft eines Labels oder die Texteigenschaft einer TextBox, enthalten ListBox und ComboBox mehrere Werte oder Wertesammlungen. Verwenden Sie integrierte Methoden, um zur Laufzeit Werte in einer Sammlung hinzuzufügen, zu löschen und beizubehalten. Um mehrere Elemente zu einer ListBox namens List1 hinzuzufügen, lautet der Code wie folgt: List1.AddItemParis
List1.AddItemNewYork
List1.AddItemSanFrancisco
ListBox und ComboBox sind effektive Möglichkeiten, Benutzern eine große Anzahl von Optionen auf begrenztem Raum bereitzustellen.
Weitere Informationen zu den ListBox- und ComboBox-Steuerelementen finden Sie in Kapitel 7, „Verwenden der Standardsteuerelemente von Visual Basic“.
->