Windows Forms: Labels und Eingabefelder
Labels (Klasse Label) sind Textfelder, die vom Benutzer nicht verändert werden können. Der Haupteinsatz von Labels findet sich in Beschriftungen (z. B. Beschriftung vor einem Eingabefeld, sodass der Benutzer weiß, was er in das Eingabefeld eingeben soll). Über die Eigenschaft Text können wir den Text festlegen. Die Eigenschaft AutoSize ist bei diesem Steuerelement standardmäßig auf true eingestellt. Mit der TextAlign-Eigenschaft können wir die Ausrichtung des Textes steuern. Beachten Sie, dass diese Eigenschaft nur von Bedeutung ist, wenn AutoSize auf false gesetzt wird.
Ein Label der Klasse LinkLabel ist ein spezielles Label, mit welchem Links erstellt werden können. Durch das Event LinkClicked können wir das Klicken auf den Link abfangen, um ein Programm oder eine Webseite zu öffnen. Dabei wird die Process-Klasse zum Starten eines Prozesses, einer Webseite oder einer Datei verwendet. Über die Eigenschaft LinkVisited kann festgelegt werden, ob der Link bereits angeklickt wurde. Hiermit ändert sich die Farbe des Links von der ursprünglichen Farbe, welche in LinkColor hinterlegt ist in den Wert der Eigenschaft VisitedLinkColor.
Ein Textfeld kann mit der Klasse TextBox erstellt werden. Der Inhalt eines Textfeldes kann vom Benutzer normalerweise geändert werden. Wird die Eigenschaft ReadOnly auf true eingestellt, so kann der Inhalt des Textfeldes nicht mehr editiert werden. Die Hintergrundfarbe (BackColor) wird dabei vom Visual Studio Designer automatisch auf grau eingestellt. Mit der Eigenschaft MaxLength können wir die maximale Anzahl an Zeichen begrenzen. Die Höhe eines Textfeldes ist immer von der gewählten Schriftart und -größe abhängig. Wenn wir ein mehrzeiliges Textfeld haben möchten, müssen wir der Eigenschaft Multiline den Wert true zuweisen. Danach kann auch die Höhe der TextBox verändert werden. Das Abrufen oder Zuweisen des Inhalts passiert über die Eigenschaft Text oder auch Lines (string-Array, wird für mehrzeilige Textfelder verwendet). Mit Hilfe des Ereignisses TextChanged können wir auf Änderungen am Inhalt einer TextBox reagieren. Im Beispiel wird der vom Benutzer eingegebene Text in einem darunter angeordneten Label-Objekt angezeigt. Um ein Passwortfeld zu erstellen, muss der Wert in der Eigenschaft PasswordChar auf ein beliebiges Pseudo-Zeichen gesetzt werden. Hierdurch wird bei der Eingabe in der TextBox nicht das eingegebene Zeichen, sondern das Pseudo-Zeichen angezeigt. Der „reale“ Inhalt kann weiterhin über die Eigenschaft Text abgerufen werden.
Ein numerisches Eingabefeld können wir mit Hilfe des NumericUpDown-Steuerelements erzeugen. Hier kann ein Wert über die Eigenschaft Value abgerufen oder zugewiesen werden. Ein Vorteil des numerischen Eingabefeldes ist die Festlegung einer Obergrenze (Eigenschaft Maximum) und einer Untergrenze (Eigenschaft Minimum). Die Eigenschaft ThousandsSeparator legt fest, ob ein Tausendertrennzeichen angezeigt werden soll oder nicht. Mit Hilfe des ValueChanged-Events können Änderungen am numerischen Wert abgefragt werden.
Form1.cs
private void textBoxEingabe_TextChanged(object sender, EventArgs e) { labelEingabe.Text = textBoxEingabe.Text; } private void numericUpDownEingabe_ValueChanged(object sender, EventArgs e) { if (numericUpDownEingabe.Value == numericUpDownEingabe.Minimum) MessageBox.Show("Der Minimal-Wert wurde erreicht!"); else if (numericUpDownEingabe.Value == numericUpDownEingabe.Maximum) MessageBox.Show("Der Maximal-Wert wurde erreicht!"); } private void linkLabelWebseite_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { Process.Start("http://www.das-grosse-computer-abc.de/CSharp/"); linkLabelWebseite.LinkVisited = true; }