На этом шаге мы приведем общие сведения об этом компоненте.
Компонент находится в списке All Windows Forms (Все формы Windows Forms) палитры компонентов. С помощью этого компонента создается редактируемое текстовое поле (маска) для ввода данных специфического формата: дат, времени, номеров телефонов и т. д. Если вы задали формат ввода данных по конкретной маске то при вводе текста проверяется, соответствует ли он этому формату.
Маска налагает ограничения на символы, вводимые по маске, и на формат данных. Контроль ввода осуществляется посимвольно: если пользователь попытается ввести запрещенный в маске символ, то этот символ системой контроля будет отвергнут. Компонент использует специальный синтаксис для объявления маски. Маска задается в свойстве Mask. Существуют стандартные маски, их перечень открывается в диалоговом окне, в которое можно войти из свойства Mask. Но можно и самому задать маску в этом свойстве, пользуясь специальными символами.
Маскирующий символ | Описание |
---|---|
0 | Указывает, что на этом месте должна быть цифра, обязательная к вводу (любая цифра от нуля до девяти) |
9 | Указывает, что на этом месте может быть (но не обязательно) цифра или пробел |
# | Указывает, что на этом месте может быть (но не обязательно) цифра или пробел. Если эта позиция в маске не будет заполнена, то в свойство Text выводится пробел. Допускаются знаки + и - |
L | Указывает, что на этом месте должна быть (обязательно) буква и только из диапазона ASCII |
? | Указывает, что на этом месте может быть (не обязательно) буква и только из диапазона ASCII |
& | Указывает, что на этом месте должен быть (обязательно) символ. Если свойство AsciiOnly установлено в True, то этот элемент ведет себя как элемент L |
C | Указывает, что на этом месте может быть (не обязательно) любой символ. Если свойство AsciiOnly установлено в True, то этот элемент ведет себя как элемент ? |
A | Указывает, что на этом месте может быть (не обязательно) любая буква или цифра. Если свойство AsciiOnly установлено в True, то не отвергаются только символы кода ASCII (a-z и A-Z) |
a | Указывает, что на этом месте может быть (не обязательно) любая буква или цифра. Если свойство AsciiOnly установлено в True, то не отвергаются только символы кода ASCII (a-z и A-Z) |
. (точка) | Разделитель десятичный |
, (запятая) | Разделитель тысяч |
: | Разделитель времени |
/ | Разделитель даты |
$ | Символ валюты |
< | Преобразует все символы к нижнему регистру |
> | Преобразует все символы к верхнему регистру |
| | Запрещает влияние элементов "или" |
\ | Теряется маска-символ. Она заменяется символом-литералом (например, маска 00_0\0 заменяется на маску _____0). Элемент \\ - это элемент \ для обратного слэша |
Все остальные символы | Все немаскированные символы появляются в поле ввода. Символы-литералы всегда занимают в маске статическую позицию в режиме исполнения приложения и не могут быть передвинуты или удалены пользователем |
Используя маску, можно без написания специальных участков программы в приложении добиться следующего:
В маске содержится символ-подсказка (он задается в свойстве PromptChar), на место которого пользователь должен вводить символы-данные. Например, маска даты может иметь вид:
"__.__.____"
Здесь символом-подсказкой является подчеркивание, а символом-литералом - точка. Вместо символа-подсказки надо вводить цифры даты (например, 29.01.2020). Точку (символ-литерал) вводить не надо - она автоматически пропускается при наборе цифр.
Вид MaskedTextBox в форме и пример выбора маски показан на рисунке 1.
Рис.1. Вид MaskedTextBox в форме и пример выбора маски
На следующем шаге мы рассмотрим его свойства.