TextBox — omówienie
Klasa TextBox umożliwia wyświetlanie lub edytowanie niesformatowanych tekstu. Typowym zastosowaniem TextBox jest edytowanie niesformatowanych tekstu w formularzu. Na przykład formularz z prośbą o podanie nazwy użytkownika, numeru telefonu itp. będzie używać TextBox kontrolek do wprowadzania tekstu. W tym temacie przedstawiono klasę TextBox i przedstawiono przykłady użycia jej w języku XAML (Extensible Application Markup Language) i C#.
TextBox czy RichTextBox?
Zarówno TextBox, jak i RichTextBox umożliwiają użytkownikom wprowadzanie tekstu, ale te dwie kontrolki są używane w różnych scenariuszach. TextBox wymaga mniejszej liczby zasobów systemowych niż RichTextBox, więc jest idealny, gdy trzeba edytować tylko czysty tekst (np. użycie w formularzu). RichTextBox jest lepszym wyborem, jeśli jest to konieczne, aby użytkownik edytował sformatowany tekst, obrazy, tabele lub inną obsługiwaną zawartość. Na przykład edytowanie dokumentu, artykułu lub bloga, który wymaga formatowania, obrazów itp., najlepiej wykonać przy użyciu RichTextBox. Poniższa tabela zawiera podsumowanie podstawowych funkcji TextBox i RichTextBox.
Kontrola | Sprawdzanie pisowni w czasie rzeczywistym | Menu kontekstowe | Polecenia formatowania, takie jak ToggleBold (Ctr+B) | FlowDocument treści, takie jak obrazy, akapity, tabele itp. |
---|---|---|---|---|
TextBox | Tak | Tak | Nie | Nie. |
RichTextBox | Tak | Tak | Tak (zobacz RichTextBox Overview) | Tak (zobacz RichTextBox Overview) |
Notatka
Mimo że TextBox nie obsługuje formatowania powiązanych poleceń edycji, takich jak ToggleBold (Ctr+B), wiele podstawowych poleceń jest obsługiwanych przez oba kontrolki, takie jak MoveToLineEnd. Aby uzyskać więcej informacji, zobacz EditingCommands.
Funkcje obsługiwane przez TextBox zostały omówione w poniższych sekcjach. Aby uzyskać więcej informacji na temat RichTextBox, zobacz RichTextBox Overview.
Sprawdzanie pisowni w czasie rzeczywistym
Sprawdzanie pisowni w czasie rzeczywistym można włączyć w TextBox lub RichTextBox. Po włączeniu sprawdzania pisowni czerwona linia pojawia się pod dowolnymi błędnie napisanymi słowami (patrz obraz poniżej).
Zobacz Włączanie sprawdzania pisowni w kontrolce edycji tekstu, aby dowiedzieć się, jak włączyć sprawdzanie pisowni.
Menu kontekstowe
Domyślnie zarówno TextBox, jak i RichTextBox mają menu kontekstowe wyświetlane po kliknięciu prawym przyciskiem myszy użytkownika wewnątrz kontrolki. Menu kontekstowe umożliwia użytkownikowi wycinanie, kopiowanie lub wklejanie (patrz obraz poniżej).
Możesz utworzyć własne niestandardowe menu kontekstowe, aby zastąpić domyślne zachowanie. Więcej informacji znajdziesz w Używanie niestandardowego menu kontekstowego z polem tekstowym.
Tworzenie skrzynek tekstowych
TextBox może być o wysokości jednej linii lub składać się z wielu linii. Pojedynczy wiersz TextBox jest najlepszy do wprowadzania małych ilości zwykłego tekstu (np. "Nazwa", "Numer telefonu" itp. w formularzu). W poniższym przykładzie pokazano, jak utworzyć pojedynczy wiersz TextBox.
<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>
Można również utworzyć TextBox, który umożliwia użytkownikowi wprowadzanie wielu wierszy tekstu. Jeśli na przykład formularz poprosił o szkic biograficzny użytkownika, należy użyć TextBox obsługującego wiele wierszy tekstu. W poniższym przykładzie pokazano, jak za pomocą języka XAML (Extensible Application Markup Language) zdefiniować kontrolkę TextBox, która automatycznie rozszerza się w celu uwzględnienia wielu wierszy tekstu.
<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>
Ustawienie atrybutu TextWrapping na wartość Wrap
powoduje zawijanie tekstu do nowego wiersza po osiągnięciu krawędzi kontrolki TextBox, automatyczne rozszerzanie kontrolki TextBox w celu uwzględnienia miejsca dla nowego wiersza, jeśli jest to konieczne.
Ustawienie atrybutu AcceptsReturn na true
powoduje, że nowy wiersz zostanie wstawiony po naciśnięciu RETURN, po raz kolejny automatycznie rozwijając TextBox, aby uwzględnić miejsce dla nowego wiersza, jeśli jest to konieczne.
Atrybut VerticalScrollBarVisibility dodaje pasek przewijania do TextBox, dzięki czemu zawartość TextBox można przewijać, jeśli TextBox rozszerza się poza rozmiar ramy lub okna, który go otacza.
Aby uzyskać więcej informacji na temat różnych zadań skojarzonych z używaniem TextBox, zobacz Tematy porad.
Wykrywanie zmian zawartości
Zazwyczaj zdarzenie TextChanged powinno być używane do wykrywania za każdym razem, gdy tekst w TextBox lub RichTextBox się zmienia, zamiast KeyDown, co mogłoby się wydawać naturalnym wyborem. Zobacz Wykrywanie, kiedy tekst w polu tekstowym został zmieniony jako przykład.
Zobacz też
.NET Desktop feedback