Radiobutton
Ein Radiobutton (auch Optionsfeld, fälschlicherweise auch Mehrfachoptionsfeld oder Optionsschaltfläche) ist ein Steuerelement grafischer Benutzeroberflächen, das der Auswahl genau einer Option aus mehreren dient.
Funktionsweise
[Bearbeiten | Quelltext bearbeiten]Radiobuttons sind meist unter-, manchmal auch nebeneinander angeordnete kleine Kreise, gefolgt von kurzen Beschreibungstexten. Die Kreise können zwei Zustände annehmen: nicht markiert (leer ) und markiert (mit einem Punkt in der Mitte ). Zeichenorientierte Benutzeroberflächen (TUI) stellen den markierten Zustand in der Regel als (•)
und den nicht markierten Zustand als ( )
dar.[1] Von mehreren Radiobuttons einer Gruppe kann immer nur einer markiert werden. Sobald ein Radiobutton markiert wird, wird eine eventuell vorhandene Markierung eines anderen Radiobuttons derselben Gruppe gelöscht. Der Initialzustand kann entweder sein, dass ein bestimmter oder kein einziger Radiobutton vorgewählt ist. Ob es, wenn ein Radiobutton markiert ist, möglich ist, die Gruppe wieder in einen Zustand zu bringen, in dem kein einziger Radiobutton markiert ist, hängt von der Implementierung ab.
Wortherkunft
[Bearbeiten | Quelltext bearbeiten]Der Name Radiobutton kommt daher, weil dieses Verhalten den mechanischen Tasten ähnelt, die es früher häufig bei Radiogeräten gab. Wird eine dieser Tasten gedrückt, rastet sie ein und gleichzeitig wird die bisher gedrückte Taste gelöst.
Am Computer muss der Auswahlvorgang in der Regel durch Mausklick auf eine Schaltfläche zur Bestätigung abgeschlossen werden.
Abgrenzung
[Bearbeiten | Quelltext bearbeiten]Die ähnlich gestalteten Checkboxen erlauben nicht nur die Auswahl eines Punktes der Liste, sondern beliebig vieler.
Programmierung
[Bearbeiten | Quelltext bearbeiten]In den meist hierarchisch aufgebauten GUI-Toolkits schließen sich diejenigen Optionsfelder gegenseitig aus, die derselben, meist durch einen beschrifteten Rahmen visualisierten Gruppe zugeordnet wurden (siehe Bildschirmfoto).
HTML
[Bearbeiten | Quelltext bearbeiten]Optionsfelder können seit HTML 2.0 in Webseiten mit Hilfe des Tags <input type="radio">
genutzt werden.[2] Der aktuelle Wert des Optionsfeldes kann über das boolsche Attribut checked
gesetzt und gelesen werden. Seit Version 3.0 können Formularelemente über das boolsche Attribut disabled
deaktiviert werden.[3]
Zusammengehörende und sich damit gegenseitig ausschließende Optionsfelder müssen dabei denselben Namen (Attribut name
) tragen.
XForms nutzt Optionsfelder zur Darstellung von select1
-Elementen, wenn das vollständige Erscheinungsbild (appearance="full"
) gewählt wurde.[4]
Das folgende C#-Beispiel verdeutlicht die Nutzung der Klasse System.Windows.Forms.RadioButton
aus dem Komponentenframework Windows Forms.[5] Es zeigt die Implementierung eines Fensters mit drei Optionsfeldern und einem Textfeld. Das Klick-Ereignis der einzelnen Optionsfelder ist mit einer gemeinsamen Ereignisbehandlungsroutine verknüpft, die die Beschriftung des markierten Optionsfeldes dem Text des Textfeldes zuweist.
using System.Windows.Forms;
public class MainForm : System.Windows.Forms.Form
{
private System.Windows.Forms.RadioButton[] radioButtons;
private System.Windows.Forms.TextBox outputTextBox;
private System.Windows.Forms.GroupBox groupBox;
// Konstruktor des Hauptfensters.
public MainForm()
{
InitializeRadioButtonsAndTextBox();
}
// Startet die Anwendung und erzeugt das Hauptfenster durch Aufruf des Konstruktors.
public static void Main()
{
Application.Run(new MainForm());
}
// Initialisiert die Radiobuttons und das Textfeld.
private void InitializeRadioButtonsAndTextBox()
{
// Erzeugt 3 Radiobuttons und ein Textfeld durch Aufruf der Standardkonstruktoren.
int radioButtonsCount = 3;
radioButtons = new RadioButton[radioButtonsCount]; // Erzeugt ein Array von Radiobuttons.
SuspendLayout();
groupBox = new GroupBox();
// Diese for Schleife initialisiert die einzelnen Radiobuttons des Arrays und fügt sie dem GroupBox hinzu.
for (int i = 0; i < radioButtonsCount; i++)
{
RadioButton newRadioButton = new RadioButton();
newRadioButton.Location = new System.Drawing.Point(50, 25 * i + 50);
newRadioButton.Width = 200;
newRadioButton.Click += new EventHandler(NewRadioButton_Clicked); // Verknüpft das Klick-Ereignis mit der gemeinsamen Ereignisbehandlungsmethode.
groupBox.Controls.Add(newRadioButton);
radioButtons[i] = newRadioButton;
}
radioButtons[0].Text = "Normal";
radioButtons[1].Text = "Erweitert";
radioButtons[2].Text = "Regulärer Ausdruck";
groupBox.Size = new System.Drawing.Size(Width, 150);
groupBox.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top;
Controls.Add(groupBox);
outputTextBox = new TextBox();
outputTextBox.Location = new System.Drawing.Point(50, 25 * radioButtonsCount + 100);
outputTextBox.Size = new System.Drawing.Size(200, 50);
outputTextBox.Multiline = true; // Legt fest, dass das Textfeld mehrere Zeilen haben kann und Zeilenumbrüche ermöglicht.
Controls.Add(outputTextBox);
Text = "Suchen und Ersetzen"; // Setzt die Beschriftung des Hauptfensters.
ResumeLayout(false);
PerformLayout();
}
// Diese Methode wird aufgerufen, wenn der Benutzer auf einen Radiobutton klickt.
private void NewRadioButton_Clicked(object sender, System.EventArgs e)
{
// Setzt den Text in der Textbox auf die Beschriftung des ausgewählten Radiobuttons.
RadioButton radioButton = (RadioButton) sender; // Typumwandlung der Variable sender vom Typ object in den abgeleiteten Typ RadioButton
outputTextBox.Text = radioButton.Text;
}
}
Weblinks
[Bearbeiten | Quelltext bearbeiten]- Apple Human Interface Guidelines über Radiobuttons. developer.apple.com (englisch).
- klassische Apps und UWP Apps. Microsoft Design Guidelines über Radiobuttons (englisch).
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ Designing Forms > Controls Summary > Option Button Control. In: Microsoft Visual Basic 1.0 for MS-DOS (VBDOS.HLP). Microsoft, 1992 (englisch).
- ↑ Tim Berners-Lee, Dan Connolly: RFC – Hypertext Markup Language – 2.0. November 1995, Abschnitt 8.1.2.4: Radio Button: INPUT TYPE=RADIO. (englisch).
- ↑ Dave Raggett: HyperText Markup Language Specification Version 3.0. (TXT; 372 kB) In: w3.org. World Wide Web Consortium, 28. März 1995, S. 130, abgerufen am 12. Mai 2023 (englisch).
- ↑ Micah Dubinko et al.: XForms 1.0. The select1 Element. In: w3.org. 14. Oktober 2003, abgerufen am 18. Mai 2023 (englisch).
- ↑ RadioButton Class. In: learn.microsoft.com. Microsoft, abgerufen am 12. Mai 2023 (englisch).