OptionButton (Optionsfelder) zur Auswahl von Optionen

 Abbildung:    Das Optionsfeld-Steuerelement

Optionsfelder bieten dem Benutzer zwei oder mehrere Wahlmöglichkeiten an. Im Gegensatz zu Kontrollkästchen sollten Optionsfelder jedoch immer Teil einer Gruppe sein. Wenn eines der Optionsfelder ausgewählt wird, dann wird sofort die Auswahl aller anderen Optionsfelder derselben Gruppe aufgehoben. Eine Optionsfeldgruppe stellt dem Benutzer verschiedene Optionen zur Verfügung, von denen er genau eine auswählen kann.

Abbildung 21   Auswählen eines Optionsfeldes

Aus der in Abbildung 21 dargestellten Optionsfeldgruppe kann der Benutzer beispiels­weise nur eines von drei Optionsfeldern auswählen.

Erstellen von Optionsfeldgruppen

Alle Optionsfelder, die direkt in einem Formular positioniert werden (also nicht in einem Rahmen oder Bildfeld), bilden eine Gruppe. Wenn Sie weitere Optionsfeldgruppen erstellen möchten, müssen Sie diese in Rahmen oder Bildfeldern positionieren.

Alle Optionsfelder in einem bestimmten Rahmen bilden eine eigene Gruppe. Das gleiche gilt für alle Optionsfelder in einem Bildfeld. Wenn Sie auf diese Weise eine eigene Gruppe einrichten wollen, dann erstellen Sie immer zuerst den Rahmen oder das Bildfeld und zeichnen anschließend die Optionsfelder über den Rahmen bzw. das Bildfeld. Abbildung 22 zeigt ein Formular mit zwei verschiedenen Optionsfeldgruppen.

Wenn Sie Optionsfelder in einem Rahmen zeichnen, kann der Benutzer anschließend nur eine der Optionen aus dieser Gruppe auswählen.

Abbildung 22   Optionsfeldgruppen

So fassen Sie Steuerelemente in einem Rahmen zusammen

1     Wählen Sie das Rahmen-Steuerelement (Frame) aus der Werkzeugsammlung aus, und zeichnen Sie den Rahmen im Formular.

2     Wählen Sie das Optionsfeld-Steuerelement (OptionButton) aus der Werkzeugsammlung aus, und zeichnen Sie das Steuerelement innerhalb des Rahmens.

3     Wiederholen Sie Schritt 2 für jedes weitere Optionsfeld, das Sie dem Rahmen hinzufügen möchten.

Wenn Sie zuerst den Rahmen und erst danach die Steuerelemente innerhalb des Rahmens zeichnen, können Sie den Rahmen zusammen mit den Steuerelementen verschieben. Wenn Sie versuchen, bereits vorhandene Steuerelemente in einen Rahmen zu verschieben, werden die Steuerelemente nicht zusammen mit dem Rahmen verschoben.

Anmerkung   Wenn Sie bestehende Steuerelemente in einem Rahmen zusammenfassen möchten, markieren Sie alle gewünschten Steuerelemente, schneiden Sie sie aus, und fügen Sie sie in ein Rahmen- oder ein Bildfeld-Steuerelement ein.

Auswählen oder Aufheben d er Auswahl von Optionsfeldern

Sie können ein Optionsfeld folgendermaßen auswählen:

·     Klicken Sie zur Laufzeit mit der Maus auf das Optionsfeld.

·     Bewegen Sie den Fokus mit der TAB-TASTE zur Optionsfeldgruppe, und wählen Sie anschließend mit den PFEILTASTEN eine Option aus der Gruppe aus.

·     Setzen Sie die zugehörige Value-Eigenschaft im Code auf den Wert True:

optChoice.Value = True

·     Verwenden Sie eine Zugriffstaste, die in der Caption-Eigenschaft eines Optionsfeldes angegeben ist.

Das Click-Ereignis

Wenn ein Optionsfeld ausgewählt wird, wird das zugehörige Click-Ereignis ausgelöst. Je nach der Funktionalität der Anwendung müssen Sie entweder auf das Ereignis reagieren, oder es ist keine Reaktion erforderlich. Das Reagieren auf das Ereignis ist sinnvoll, wenn Sie die Beschriftung eines Bezeichnungsfeld-Steuerelements aktualisieren möchten, um dem Benutzer beispielsweise Informationen über die ausgewählte Option anzubieten.

Die Value-Eigenschaft

Die Value-Eigenschaft des Optionsfeld-Steuerelements zeigt an, ob das Optionsfeld ausgewählt ist. In diesem Fall wird für die Eigenschaft die Einstellung True festgelegt. Sie können ein Optionsfeld im Code auswählen, indem Sie seine Value-Eigenschaft setzen. Ein Beispiel:

optPentium.Value = True

Wenn eine Schaltfläche die Standardschaltfläche einer Optionsfeldgruppe sein soll, muss die Value-Eigenschaft zur Entwurfszeit auf True gesetzt werden. Dieses Optionsfeld bleibt so lange die Standardeinstellung, bis der Benutzer eine andere Option auswählt oder bis die Auswahl aus dem Code heraus geändert wird, wie im obigen Beispiel gezeigt wurde.

Mit einem Dialogfeld, das Optionsfelder enthält, fordern Sie den Benutzer im Prinzip auf, Optionen auszuwählen, mit denen er die weiteren Aktionen der Anwendung bestimmt. Sie können die Value-Eigenschaft aller Optionsfeld-Steuerelemente verwenden, um festzustellen, welche Option oder welche Optionen ausgewählt wurden, und dann entsprechend reagieren.

Erstellen von Tastenkombinationen

Mit der Caption-Eigenschaft können Sie Zugriffstasten für die Optionsfelder erstellen, indem Sie ein kaufmännisches Und (&) vor dem Buchstaben einfügen, der als Zugriffstaste verwendet werden soll. Wenn beispielsweise eine Zugriffstaste für die Optionsfeldbeschriftung "Pentium" erstellt werden soll, fügen Sie ein kauf­männisches Und vor dem Buchstaben "P" ein: "&Pentium". Zur Laufzeit wird der Buchstabe "P" unterstrichen, und der Benutzer kann die Befehlsschaltfläche auswählen, indem ALT+P gleichzeitig gedrückt werden.

Anmerkung   Wenn ein kaufmännisches Und in einer Beschriftung eingefügt werden soll, ohne dass eine Zugriffstaste erstellt wird, fügen Sie zwei kaufmännische Unds ein (&&). Die Beschriftung enthält ein kaufmännisches Und, und es werden keine Zeichen unterstrichen.

Deaktivieren eines Optionsfelds

Sie deaktivieren ein Optionsfeld, indem Sie die zugehörige Enabled-Eigenschaft auf False setzen. Wenn das Programm ausgeführt wird, wird das Optionsfeld dann nur abgeblendet dargestellt, d.h. diese Option ist nicht verfügbar.

Optisch ansprechendere Gestaltung des Optionsfeld-Steuerelements

Das Aussehen des Optionsfeld-Steuerelements können Sie ansprechender gestalten, wenn Sie die Einstellung der Style-Eigenschaft ändern und dann die Eigenschaften Picture, DownPicture und DisabledPicture verwenden. Siehe den entsprechenden Abschnitt zum CommandButton.

Steuerelementefelder aus Optionsfeld-Steuerelementen einsetzen

Der Umfang des Programmcodes reduziert sich erheblich, wenn man statt mehrerer einzelner OptionButtons zu erstellen, diese in einem Steuerelementefeld zusammenfasst. Alle OptionButtons benutzen dann die gleichen Sub-Prozeduren und unterscheiden sich nur durch ihren Index.
Siehe Abschnitt "Arbeiten mit Steuerelementefeldern".

Die Anwendung "Optionen"

Das in Abbildung 22 dargestellte Formular enthält Optionsfelder, mit denen der Prozessortyp und das Betriebssystem eines fiktiven Computers angegeben werden können. Wählt der Benutzer in den beiden Gruppen jeweils ein Optionsfeld aus, so ändert sich die Beschriftung des Bezeichnungsfeldes entsprechend der aktuellen Auswahl. Eine ausführbare Version dieses Beispiels finden Sie im Formular Options.frm in der Beispielanwendung Controls.vbp.

Die folgende Tabelle zeigt die Einstellungen der Eigenschaften für die Objekte der Anwendung an.

Objekt

Eigenschaft

Einstellung

Bezeichnungsfeld

Name
Caption

lblDisplay
(leer)

Befehlsschaltfläche

Name
Caption

cmdClose
&Schließen

Erstes Optionsfeld

Name
Caption

opt486
&486

Zweites Optionsfeld

Name
Caption

Value

opt586
&Pentium

True

Drittes Optionsfeld

Name
Caption

opt686
P&entium Pro

Rahmen

Name
Caption

fraSystem
Betriebssystem

Viertes Optionsfeld

Name
Caption

optWin95
&Windows 95

Fünftes Optionsfeld

Name
Caption

Value

optWinNT
Windows &NT

True

Ereignisse in der Anwendung "Optionen"

Die Anwendung "Optionen" reagiert folgendermaßen auf Ereignisse:

·     Die Click-Ereignisse der ersten drei Optionsfelder weisen einer String-Variablen auf Formularebene, strComputer, einen entsprechenden Wert zu.

·     Die Click-Ereignisse für die letzten beiden Optionsfelder weisen einer zweiten Variablen auf Formularebene, strSystem, einen entsprechenden Wert zu.

Das Entscheidende an diesem Ansatz ist die Verwendung der beiden Variablen strComputer und strSystem auf Formularebene. Diese Variablen enthalten verschiedene Zeichenfolgen, je nachdem, welche Optionsfelder zuletzt ausgewählt wurden.

Bei jeder Auswahl eines neuen Optionsfeldes aktualisiert der Code in dem Click-Ereignis die entsprechende Variable:

Private Sub opt586_Click()

   strComputer = "Pentium"

   Call DisplayCaption

End Sub

Anschließend wird eine Sub-Prozedur mit dem Namen DisplayCaption aufgerufen, die dann die beiden Variablen verkettet und die Caption-Eigenschaft (also die Beschriftung) des Bezeichnungsfeldes aktualisiert:

Sub DisplayCaption()

   lblDisplay.Caption = "Sie haben einen " & strComputer & " unter " & strSystem & " ausgewählt."

End Sub

Eine Sub-Prozedur wird deshalb verwendet, weil das Verfahren zur Aktualisierung der Caption-Eigenschaft im wesentlichen für alle fünf Optionsfelder gleich ist, nur der Wert der Variablen ändert sich von einem Fall zum nächsten. Dadurch müssen Sie nicht denselben Code für jedes Click-Ereignis erneut eingeben.