Компоненты Windows Forms. Компонент MaskedTextBox (общие сведения)

   
На этом шаге мы приведем общие сведения об этом компоненте.

   
Компонент находится в списке All Windows Forms (Все формы Windows Forms) палитры компонентов. С помощью этого компонента создается редактируемое текстовое поле (маска)
для ввода данных специфического формата: дат, времени, номеров телефонов и т. д. Если вы задали формат ввода данных по конкретной маске то при вводе текста проверяется, соответствует ли он
этому формату.

   
Маска налагает ограничения на символы, вводимые по маске, и на формат данных. Контроль ввода осуществляется посимвольно: если пользователь попытается ввести запрещенный в маске символ,
то этот символ системой контроля будет отвергнут. Компонент использует специальный синтаксис для объявления маски. Маска задается в свойстве Mask. Существуют стандартные маски,
их перечень открывается в диалоговом окне, в которое можно войти из свойства Mask. Но можно и самому задать маску в этом свойстве, пользуясь специальными символами.

Таблица 1. Перечень специальных символов, задающих маску

Маскирующий символ Описание
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 в форме и пример выбора маски

   
На следующем шаге мы рассмотрим его свойства.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий