Элемент MaskedTextBox
Элемент MaskedTextBox
В .NET 2.0 предлагается также маскированное текстовое окно, которое позволяет задать последовательность символов, допустимую для принятия буфером ввода (это может быть номер социальной страховки, телефонный номер с кодом региона, почтовый индекс или что-то другое). Маска, с которой производится сравнение (она называется шаблоном или выражением маски), создается с помощью специальных маркеров, встроенных в строковый литерал. Созданное значение выражения маски присваивается свойству Mask. В табл. 21.3 даются описания некоторых масочных маркеров.
Таблица 21.3. Маркеры типа MaskedTextBox
Маркер Описание 0 Представляет наличие цифры (значения 0-9) 9 Представляет необязательную цифру или пробел L Представляет наличие буквы (в верхнем или нижнем регистре, A-Z) ? Представляет необязательную букву (в верхнем или нижнем регистре, A-Z) , Представляет разделитель тысяч : Представляет указатель места заполнения времени / Представляет указатель места заполнения даты $ Представляет символ денежной единицыЗамечание. Символы, допустимые для использования с типом MaskedTextBox, не вполне соответствуют синтаксису регулярных выражений. Хотя .NET и предлагает специальные пространства имен для работы со стандартными регулярными выражениями (это пространства имен System.Text.RegularExpressions и System.Web.RegularExpressions), тип MaskedTextBox использует синтаксис, аналогичный синтаксису элементов управления COM в VB6.
Вдобавок к свойству Mask, тип MaskedTextBox предлагает члены, определяющие реакцию этого элемента управления на ввод пользователем некорректных данных. Например, BeepOnError (очевидно) заставит элемент управления сгенерировать звуковой сигнал, если ввод не соответствует маске, и некорректный символ к обработке допущен не будет.
Чтобы показать возможности использования MaskedTextBox, добавьте в имеющуюся у вас форму дополнительные элементы Label и MaskedTextBox. Вы, конечно, можете построить шаблон маски непосредственно в программном коде вручную, но в строке свойства Mask в окне свойств предлагается кнопка с многоточием, которая открывает диалоговое окно с целым рядом уже готовых масок (рис. 21.6).

Рис. 21.6. Встроенные значения шаблонов маски для свойства Mask
Выберите подходящий шаблон (например, Phone number – телефонный номер), активизируйте свойство BeepOnError и снова выполните тестовый запуск программы. Вы обнаружите, что теперь вам не позволяется вводить никаких буквенных символов (в случае выбора маски Phone number).
Как и следует ожидать, элемент управления MaskedTextBox в цикле своего существования генерирует различные события, одно из которых – это событие MaskInputRejected, возникающее при вводе пользователем некорректных данных. Обработайте это событие, используя окно свойств, и обратите внимание на то, что вторым входным аргументом сгенерированного обработчика события является тип MaskInputRejectedEventArgs. Этот тип имеет свойство RejectionHint, содержащее краткое описание возникшей ошибки. Для проверки просто отобразите информацию об ошибке в строке заголовка формы.
private void txtMaskedTextBox_MaskInputRejected(object sender, MaskInputRejectedEventArgs e) {
this.Text = string.Format("Ошибка: {0}", e.RejectionHint);
}
Чтобы гарантировать, что эта ошибка не будет отображаться при вводе пользователем корректных данных, обработайте событие KeyDown для MaskedTextBox и реализуйте в обработчике события восстановление заголовка формы к значению, принятому по умолчанию.
private void txtMaskedTextBox_KeyDown(object sender, KeyEventArgs e) {
this.Text = "Забавы с Label и TextBox";
}
Исходный код. Проект LabelsAndTextBoxes размещен в подкаталоге, соответствующем главе 21.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Элемент
Элемент Основой языка HTML является элемент. Он несет в себе определенную информацию, может описывать документ в целом или способ форматирования текста. Элементы можно назвать основой построения сайта. Все, что вы захотите создать на вашей странице, будет сделано с помощью
Элемент
Элемент Элементы – это любые единичные компоненты структуры, например, заголовок, абзац текста, фотография или
Элемент <xsl:if>
Элемент <xsl:if> При помощи элемента <xsl:if> осуществляются проверки условия и принимаются действия на основе результата проверки. Он во многом похож на оператор if в языках программирования. У элемента <xsl:if> один атрибут:• test (обязательный). Устанавливается в
Элемент <xsl:for-each>
Элемент <xsl:for-each> Элемент <xsl:for-each> позволяет применять тело шаблона в цикле снова и снова для всех элементов набора узлов. С технической точки зрения, он работает с набором узлов, который возвращает выражение XPath и выполняет одно и то же действие с каждым узлом в
Элемент <?job?>
Элемент <?job?> Элемент <?job?> задает режим отладки при выполнении WS-файла. Если значение атрибута debug равно true, то задание может быть выполнено во внешнем отладчике (см. приложение 3). Если же значение атрибута debug равно false, то отладчик для этого задания применен быть не
Элемент <job>
Элемент <job> Элементы <job> позволяют определять несколько заданий (независимо выполняющихся частей) в одном WS-файле. Иначе говоря, между тегами <job> и </job> будет находиться отдельный сценарий (который, в свою очередь, может состоять из нескольких частей,
Элемент <example>
Элемент <example> Внутри элемента <example> приводится текст из одной или нескольких строк, в котором можно описать примеры запуска сценария. Если сценарий был запущен с ключом /? в командной строке или в сценарии встретился вызов метода ShowUsage объекта WshArguments, то этот текст
Элемент Form
Элемент Form Элемент Form является контейнером для элементов управления и является рабочей площадкой для создания пользовательского интерфейса программы. Класс Form имеет несколько свойств, которые могут различаться в зависимости от выбранной целевой
Элемент Button
Элемент Button Для создания обычной кнопки используется класс System.Windows.Forms.Button. Эта кнопка обладает всеми основными функциями, которые есть у такого же класса в полной версии .NET Framework. Кнопка предназначена для обработки нажатия стилуса на соответствующую область экрана. В
Элемент TextBox
Элемент TextBox В предыдущем примере дата отображалась в текстовом поле. Это поле создается при помощи класса TextBox, который позволяет вводить текст. Данный элемент поддерживает такие стандартные свойства, как BackColor и ForeColor. Событие Click элементом TextBox не поддерживается, но
Элемент ProgressBar
Элемент ProgressBar Элемент управления ProgressBar предназначен для индикации процесса выполнения какой-либо операции. Как правило, данный элемент активно используется при выполнении долгих операций, чтобы пользователь получил иллюзию контроля над работой приложения.Чаще всего
Элемент xsl:if
Элемент xsl:if Синтаксис элемента следующий:<xsl:if test="выражение"> <!-- Содержимое: шаблон --></xsl:if>Элемент xsl:if является простейшим условным оператором в XSLT. Выражение, содержащееся в обязательном атрибуте test, вычисляется и приводится к булевому типу. В том и только том