Übersicht über TextBox

Mit der TextBox-Klasse können Sie unformatierten Text anzeigen oder bearbeiten. Die häufige Verwendung einer TextBox ist das Bearbeiten von unformatiertem Text in einem Formular. So würde beispielsweise ein Formular, in dem ein Nutzer seinen Namen, seine Telefonnummer usw. eingeben muss, die Texteingabe über TextBox-Elemente gesteuert werden. Im Rahmen dieses Themas wird die TextBox-Klasse vorgestellt. Es enthält außerdem Beispiele für die Verwendung in XAML (Extensible Application Markup Language) und C#.

TextBox oder RichTextBox?

Mit TextBox und RichTextBox können Benutzer Texte eingeben, die zwei Steuerelemente werden jedoch für verschiedene Szenarien verwendet. Ein TextBox benötigt weniger Systemressourcen als ein RichTextBox, was ideal ist, wenn lediglich Nur-Text bearbeitet werden muss (d. h. Verwendung in einem Formular). Wenn formatierter Text, Bilder, Tabellen oder anderer unterstützter Inhalt bearbeitet werden soll, ist ein RichTextBox besser geeignet. Zum Beispiel werden Dokumente, Artikel oder Blogs, die Formatierung, Bilder usw. erfordern, am besten mit einem RichTextBox bearbeitet. In der nachstehenden Tabelle sind die primären Funktionen von TextBox und RichTextBox zusammengefasst.

Control Rechtschreibprüfung in Echtzeit Kontextmenü Formatierungsbefehle wie ToggleBold (STRG+B) FlowDocument-Inhalte wie Bilder, Absätze, Tabellen usw.
TextBox Ja Ja Nein Nein.
RichTextBox Ja Ja Ja (Siehe Übersicht über RichTextBox) Ja (Siehe Übersicht über RichTextBox)

Hinweis

Obwohl TextBox die Formatierung im Zusammenhang mit dem Bearbeiten von Befehlen wie ToggleBold (Ctr+B) nicht unterstützt, werden viele Basisbefehle von beiden Steuerelementen, wie z. B. MoveToLineEnd, unterstützt. Weitere Informationen finden Sie unter EditingCommands.

Funktionen, die von TextBox unterstützt werden, werden in den nachstehenden Abschnitten behandelt. Weitere Informationen zu RichTextBox finden Sie unter Übersicht über RichTextBox.

Rechtschreibprüfung in Echtzeit

Sie können die Rechtschreibprüfung in Echtzeit in TextBox oder RichTextBox aktivieren. Wenn die Rechtschreibprüfung aktiviert ist, wird eine rote Linie unter falsch geschriebenen Wörtern angezeigt (siehe Abbildung unten).

Textbox with spell-checking

Wie Sie die Rechtschreibprüfung aktivieren, erfahren Sie unter Aktivieren der Rechtschreibprüfung in einem Textbearbeitungssteuerelement.

Kontextmenü

TextBox und RichTextBox haben standardmäßig ein Kontextmenü, das angezeigt wird, wenn ein Benutzer mit der rechten Maustaste in das Steuerelement klickt. Das Kontextmenü ermöglicht dem Benutzer das Ausschneiden, Kopieren und Einfügen (siehe Bild unten).

TextBox with context menu

Sie können Ihr eigenes benutzerdefiniertes Kontextmenü erstellen, um das Standardverhalten zu überschreiben. Weitere Informationen finden Sie unter Verwenden eines benutzerdefinierten Kontextmenüs mit „TextBox“.

Erstellen von TextBoxes

Eine TextBox kann so hoch wie eine einzelne Zeile sein oder aus mehreren Zeilen bestehen. Eine einzelne Zeile TextBox ist am besten dazu geeignet, kleine Mengen Nur-Text einzugeben (d. h. "Name", "Telefonnummer" usw. in einem Formular). Das folgende Beispiel zeigt, wie eine einzelne Zeile TextBox erstellt wird.

<Page  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <StackPanel>
    <TextBox Width="200" MaxLength="100" />
  </StackPanel>
</Page>

Sie können auch eine TextBox erstellen, womit der Benutzer mehrere Textzeilen eingeben kann. Wenn Ihr Formular zum Beispiel eine biografische Skizze des Benutzers verlangt, verwenden Sie ein TextBox, dass mehrere Textzeilen unterstützt. Das folgende Beispiel zeigt, wie XAML (Extensible Application Markup Language) verwendet wird, um einTextBox-Steuerelement zu definieren, das automatisch erweitert wird, um mehrere Textzeilen aufzunehmen.

<TextBox
  Name="tbMultiLine"
  TextWrapping="Wrap"
  AcceptsReturn="True"
  VerticalScrollBarVisibility="Visible"
>
  This TextBox will allow the user to enter multiple lines of text.  When the RETURN key is pressed, 
  or when typed text reaches the edge of the text box, a new line is automatically inserted.
</TextBox>

Durch das Einstellen des TextWrapping-Attributs auf Wrap wird der Text in eine neue Zeile umgebrochen, wenn die Kante des TextBox-Steuerelements erreicht wird, wodurch automatisch das TextBox-Steuerelement erweitert wird, um gegebenenfalls Raum für eine neue Zeile hinzuzufügen.

Durch das Einstellen des AcceptsReturn-Attributs auf true wird eine neue Zeile eingefügt, wenn der ZURÜCK-Schlüssel betätigt wird, wodurch erneut automatisch TextBox erweitert wird, um gegebenenfalls Raum für eine neue Zeile hinzuzufügen.

Das VerticalScrollBarVisibility-Attribut fügt eine Bildlaufleiste zu TextBox hinzu, so dass durch den Inhalt von TextBox gescrollt werden kann, wenn TextBox über die Größe des Rahmens oder Fensters, was es umschließt, erweitert wird.

Weitere Informationen über verschiedene Aufgaben, die mit der Verwendung von TextBox in Verbindung stehen, finden Sie in den Themen zur Vorgehensweise.

Erkennen, wenn Inhalt geändert wird

Normalerweise sollte das TextChanged-Ereignis verwendet werden, um zu erkennen, wann immer sich der Text in TextBox oder RichTextBox ändert, statt KeyDown, wie Sie möglicherweise erwarten. Ein Beispiel finden Sie unter Erkennen von Änderungen an Text in einem Textfeld.

Siehe auch