Обзор TextBox
Класс TextBox позволяет отображать или изменять неформатированный текст. Частое использование TextBox — редактирование неформатированного текста в форме. Например, форма, запрашиваемая имя пользователя, номер телефона и т. д., будет использовать элементы управления TextBox для ввода текста. В этом разделе представлен класс TextBox и приведены примеры использования в языке разметки расширяемых приложений (XAML) и C#.
TextBox или RichTextBox?
Оба TextBox и RichTextBox позволяют пользователям вводить текст, но для разных сценариев используются два элемента управления. TextBox требует меньше системных ресурсов, чем RichTextBox, поэтому он идеален, если нужно изменить только обычный текст (например, при использовании в форме). RichTextBox лучше выбрать, если пользователю необходимо изменить форматированный текст, изображения, таблицы или другое поддерживаемое содержимое. Например, редактирование документа, статьи или блога, требующего форматирования, изображений и т. д., лучше всего выполнять с помощью RichTextBox. В таблице ниже приведены основные функции TextBox и RichTextBox.
Контроль | Проверка орфографии в режиме реального времени | Контекстное меню | Команды форматирования, такие как ToggleBold (Ctr+B) | FlowDocument содержимое, такое как изображения, абзацы, таблицы и т. д. |
---|---|---|---|---|
TextBox | Да | Да | Нет | Нет. |
RichTextBox | Да | Да | Да (см. обзор RichTextBox ) | Да (см. RichTextBox: обзор) |
Заметка
Хотя TextBox не поддерживает форматирование связанных команд редактирования, таких как ToggleBold (Ctr+B), многие основные команды поддерживаются обеими элементами управления, такими как MoveToLineEnd. См. EditingCommands для получения дополнительной информации.
Функции, поддерживаемые TextBox, рассматриваются в следующих разделах. Для получения дополнительной информации о RichTextBoxсм. Обзор RichTextBox.
Проверка орфографии в режиме реального времени
Вы можете включить проверку орфографии в режиме реального времени в TextBox или RichTextBox. При включении проверки орфографии красная линия отображается под любыми прописными словами (см. рисунок ниже).
См. включение проверки орфографии в элементе управления редактирования текста, чтобы узнать, как включить проверку орфографии.
Контекстное меню
По умолчанию оба TextBox и RichTextBox имеют контекстное меню, которое отображается при щелчке правой кнопкой мыши пользователя внутри элемента управления. Контекстное меню позволяет пользователю вырезать, копировать или вставлять (см. рисунок ниже).
Вы можете создать собственное пользовательское контекстное меню, чтобы переопределить поведение по умолчанию. Дополнительные сведения см. в разделе «Использование настраиваемого контекстного меню с TextBox».
Создание текстовых ящиков
TextBox может быть одной строкой в высоту или содержать несколько строк. Одна строка TextBox лучше всего подходит для ввода небольших объемов обычного текста (т. е. "Имя", "Номер телефона" и т. д. в форме). В следующем примере показано, как создать одну строку 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>
Вы также можете создать TextBox, которая позволяет пользователю вводить несколько строк текста. Например, если форма попросила биографический эскиз пользователя, вы хотите использовать TextBox, которая поддерживает несколько строк текста. В следующем примере показано, как использовать язык разметки расширяемых приложений (XAML) для определения элемента управления TextBox, который автоматически расширяется для размещения нескольких строк текста.
<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>
Установка атрибута TextWrapping на Wrap
приводит к тому, что текст будет переноситься на новую строку, когда достигается граница элемента управления TextBox, автоматически расширяя элемент управления TextBox для включения пространства для новой строки, если это необходимо.
Если необходимо, установка атрибута AcceptsReturn на true
приводит к автоматическому расширению TextBox, чтобы включить место для новой строки. Затем при нажатии клавиши RETURN вставляется новая строка.
Атрибут VerticalScrollBarVisibility добавляет полосу прокрутки к TextBox, чтобы содержимое TextBox можно было прокрутить, если TextBox расширяется за пределы размера рамки или окна, в которое оно заключено.
Дополнительные сведения о различных задачах, связанных с использованием TextBox, см. в разделе «Руководства».
Обнаружение изменений содержимого
Обычно событие TextChanged должно использоваться для обнаружения изменений текста в TextBox или RichTextBox, а не в KeyDown, как вы могли бы ожидать. Пример см. в статье Обнаружение изменений текста в текстовом поле.
См. также
.NET Desktop feedback