Udostępnij przez


Pole tekstowe

Klasa TextBox umożliwia wyświetlanie lub edytowanie niesformatowanych tekstu. Typowym zastosowaniem elementu TextBox jest edytowanie niesformatowanych tekstu w formularzu. Na przykład formularz z prośbą o podanie nazwy użytkownika, numeru telefonu i innych informacji będzie używać TextBox kontrolek do wprowadzania tekstu.

Zrzut ekranu przedstawiający cztery kontrolki TextBox demonstrujące różne stany.

Poniższa tabela zawiera listę typowych zadań do pracy z kontrolką TextBox:

Title Description
Tworzenie wielowierszowej kontrolki TextBox Dowiedz się, jak utworzyć pole tekstowe, które akceptuje wiele wierszy tekstu.
Wykryj, kiedy tekst w polem tekstowym uległ zmianie Dowiedz się, jak reagować, gdy tekst zmienia się w TextBoxie.
Włączanie znaków tabulacji w kontrolce TextBox Dowiedz się, jak zezwalać na znaki tabulacji w polu tekstowym.
Pobierz kolekcję wierszy z pola tekstowego Dowiedz się, jak pobierać wiersze tekstu z pola tekstowego.
Ustawienie kontrolki TextBox jako tylko do odczytu Dowiedz się, jak zapobiegać edycji w usłudze TextBox.
Położenie kursora na początku lub na końcu tekstu w kontrolce TextBox Dowiedz się, jak ustawić położenie kursora w polu tekstowym.
Pobieranie zaznaczenia tekstu Dowiedz się, jak pobrać zaznaczony tekst z TextBox.
Ustawianie fokusu w kontrolce TextBox Dowiedz się, jak ustawić fokus na polu tekstowym.
Ustawianie zawartości tekstowej kontrolki TextBox Dowiedz się, jak ustawić początkowy tekst w polu tekstowym.
Włączanie sprawdzania pisowni w kontrolce edycji tekstu Dowiedz się, jak włączyć sprawdzanie pisowni w polu tekstowym.
Używanie niestandardowego menu kontekstowego z polem tekstowym Dowiedz się, jak utworzyć niestandardowe menu kontekstowe dla kontrolki TextBox.
Używanie sprawdzania pisowni z menu kontekstowym Dowiedz się, jak zintegrować sprawdzanie pisowni z menu kontekstowym.
Dodaj znak wodny do pola tekstowego Dowiedz się, jak wyświetlać tekst zastępczy w polu tekstowym.

TextBox czy RichTextBox?

Obie TextBox i RichTextBox umożliwiają użytkownikom wprowadzanie tekstu, ale te dwie kontrolki są używane w różnych scenariuszach. Element TextBox wymaga mniejszych zasobów systemowych niż RichTextBox, więc jest idealnym rozwiązaniem, gdy trzeba edytować tylko zwykły tekst (na przykład użycie w formularzu). RichTextBox jest lepszym wyborem, jeśli użytkownik musi edytować sformatowany tekst, obrazy, tabele lub inną obsługiwaną zawartość. Na przykład edytowanie dokumentu, artykułu lub bloga wymagającego formatowania, obrazów i innej zawartości jest najlepiej realizowane przy użyciu elementu RichTextBox. Poniższa tabela zawiera podsumowanie podstawowych funkcji TextBox oraz RichTextBox.

Kontrola Sprawdzanie pisowni w czasie rzeczywistym Menu kontekstowe Polecenia formatowania, takie jak ToggleBold (Ctr+B) FlowDocument zawartość, na przykład obrazy, akapity, tabele i inne
TextBox Tak Tak Nie. Nie.
RichTextBox Tak Tak Tak (zobacz Omówienie richTextBox) Tak (zobacz Omówienie richTextBox)

Uwaga / Notatka

Chociaż TextBox nie obsługuje formatowania powiązanych poleceń edycji, takich jak ToggleBold (Ctr+B), wiele podstawowych poleceń jest obsługiwanych przez obie kontrolki, takie jak MoveToLineEnd. Aby uzyskać więcej informacji, zobacz EditingCommands.

Funkcje obsługiwane przez TextBox są omówione w poniższych sekcjach. Aby uzyskać więcej informacji na temat RichTextBox, zobacz RichTextBox Overview.

Sprawdzanie pisowni w czasie rzeczywistym

Możesz włączyć sprawdzanie pisowni w czasie rzeczywistym w elemencie TextBox lub RichTextBox. Po włączeniu sprawdzania pisowni pod dowolnym błędnie napisanym wyrazem pojawia się czerwona linia (zobacz poniższą ilustrację).

Zrzut ekranu przedstawiający kontrolkę TextBox z włączonym sprawdzaniem pisowni, pokazujący czerwone podkreślenie pod błędnie napisanym słowem.

Aby dowiedzieć się, jak włączyć sprawdzanie pisowni, zobacz Włączanie sprawdzania pisowni w kontrolce edycji tekstu.

Menu kontekstowe

Domyślnie zarówno TextBox, jak i RichTextBox mają menu kontekstowe, które jest wyświetlane, gdy użytkownik kliknie prawym przyciskiem myszy wewnątrz kontrolki. Menu kontekstowe umożliwia użytkownikowi wycinanie, kopiowanie lub wklejanie (zobacz poniższą ilustrację).

Zrzut ekranu przedstawiający kontrolkę TextBox wyświetlającą menu kontekstowe z opcjami wycinania, kopiowania i wklejania.

Możesz utworzyć własne niestandardowe menu kontekstowe, aby zastąpić domyślne zachowanie. Aby uzyskać więcej informacji, zobacz Używanie niestandardowego menu kontekstowego z polem tekstowym.

Tworzenie skrzynek tekstowych

Może TextBox być jedną linią w wysokości lub składać się z wielu wierszy. Pojedynczy wiersz TextBox najlepiej nadaje się do wprowadzania małych ilości zwykłego tekstu (na przykład "Nazwa", "Numer telefonu" i inne informacje 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ć obiekt 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ć obiektu 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 Wrap powoduje zawijanie tekstu do nowego wiersza, gdy zostanie osiągnięta krawędź kontrolki TextBox, oraz zawiera automatyczne rozszerzenie kontrolki TextBox w celu uwzględnienia miejsca dla nowego wiersza, jeśli jest to konieczne.

Ustawienie atrybutu AcceptsReturn powoduje true , że nowy wiersz zostanie wstawiony po naciśnięciu klawisza RETURN, po raz kolejny automatycznie rozwijając TextBox pole do uwzględnienia miejsca dla nowego wiersza, w razie potrzeby.

Atrybut VerticalScrollBarVisibility dodaje pasek przewijania do elementu TextBox, dzięki czemu zawartość obiektu TextBox można przewijać, jeśli TextBox rozszerza się poza rozmiar ramy lub okna, które go otacza.

Aby uzyskać więcej informacji na temat różnych zadań związanych z używaniem elementu TextBox, zobacz tematy z instrukcjami wymienionymi w górnej części tego artykułu.

Wykrywanie zmian zawartości

TextChanged Zazwyczaj zdarzenie powinno być używane do wykrywania za każdym razem, gdy tekst w elemecie TextBox lub RichTextBox zmienia się, a nie KeyDown tak, jak można się spodziewać. Aby zapoznać się z przykładem, zobacz Detect When Text in a TextBox has changed (Wykryj, kiedy tekst w polem tekstowym uległ zmianie).

Style i szablony

Możesz zmodyfikować wartość domyślną ControlTemplate , aby nadać kontrolce TextBox unikatowy wygląd. Aby uzyskać więcej informacji, zobacz Co to są style i szablony? i Jak utworzyć szablon dla kontrolki.

Właściwość zawartości

Kontrolka TextBox używa właściwości Text do wyświetlania zawartości tekstowej.

Części

W poniższej tabeli wymieniono nazwane części kontrolki TextBox .

Część Typ Description
PART_ContentHost FrameworkElement Element struktury hostujący zawartość tekstową.

Stany wizualne

W poniższej tabeli wymieniono stany wizualizacji dla kontrolki TextBox .

Stan wizualny Nazwa grupy VisualStateGroup Description
Disabled CommonStates Kontrolka jest wyłączona.
Focused FocusStates Kontrolka ma fokus klawiatury.
Nieprawidłowe skupienie StanyWalidacji Kontrolka ma błąd weryfikacji i ma fokus klawiatury.
NieprawidłoweNieaktywne StanyWalidacji Kontrolka ma błąd weryfikacji, ale nie ma fokusu klawiatury.
Mouseover CommonStates Mysz jest nad kontrolką.
Normal CommonStates Kontrolka jest w normalnym stanie.
ReadOnly CommonStates Kontrolka jest w trybie tylko do odczytu.
Nieostry FocusStates Kontrolka nie ma fokusu klawiatury.
Prawidłowe StanyWalidacji Kontrolka jest prawidłowa i nie ma błędów walidacji.

Zobacz także