Пример. Работа с элементом управления MaskedTextBox
Обновлен: Ноябрь 2007
В этом примере рассматриваются следующие задачи:
Инициализация элемента управления MaskedTextBox.
Использование обработчика событий MaskInputRejected для оповещения пользователя, когда знак не соответствует маске
Присвоение типа свойству ValidatingType и использование обработчика событий TypeValidationCompleted для оповещения пользователя в случаях, когда передаваемое значение имеет недопустимый тип
Полную рабочую версию элемента управления MaskedTextBox, поддерживающую расширенные функции, включая проверку с помощью пользовательских типов данных, см. в разделе Пример MaskedTextBox Control.
Создание проекта и добавление элемента управления
Для добавления элемента управления MaskedTextBox в форму
Откройте форму, в которую нужно поместить элемент управления MaskedTextBox.
Перетащите элемент управления MaskedTextBox из панели элементов в форму.
Щелкните элемент управления правой кнопкой мыши и выберите Свойства. В окне Свойства выберите свойство Маска и нажмите кнопку ... (многоточие) рядом с именем свойства.
В окне Маска ввода выберите Краткий формат даты и нажмите кнопку ОК.
В окне Свойства присвойте свойству BeepOnError значение true. Это свойство создает короткий звуковой сигнал всякий раз, когда пользователь пытается ввести знак, нарушающий определение маски.
Оповещение пользователя об ошибках ввода
Добавьте всплывающую подсказку об отклоненном вводе
Вернитесь в область элементов и добавьте ToolTip в форму.
Создайте обработчик событий MaskInputRejected, создающий ToolTip в случае ошибок ввода. Всплывающая подсказка отображается в течение пяти секунд или до тех пор, пока ее не щелкнет пользователь.
public void Form1_Load(Object sender, EventArgs e) { ... // Other initialization code maskedTextBox1.Mask = "00/00/0000"; maskedTextBox1.MaskInputRejected += new MaskInputRejectedEventHandler(maskedTextBox1_MaskInputRejected) } void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e) { toolTip1.ToolTipTitle = "Invalid Input"; toolTip1.Show("We're sorry, but only digits (0-9) are allowed in dates.", maskedTextBox1, maskedTextBox1.Location, 5000); }
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.ToolTip1.IsBalloon = True Me.MaskedTextBox1.Mask = "00/00/0000" End Sub Private Sub MaskedTextBox1_MaskInputRejected(sender as Object, e as MaskInputRejectedEventArgs) Handles MaskedTextBox1.MaskInputRejected ToolTip1.ToolTipTitle = "Invalid Input" ToolTip1.Show("We're sorry, but only digits (0-9) are allowed in dates.", MaskedTextBox1, 5000) End Sub
Оповестите пользователя о том, что введен знак недопустимого типа
Добавьте всплывающую подсказку о недопустимых типах данных
В обработчике событий Load формы назначьте объект Type, представляющий тип DateTime свойству ValidatingType элемента управления MaskedTextBox:
private void Form1_Load(Object sender, EventArgs e) { // Other code maskedTextBox1.ValidatingType = typeof(System.DateTime); maskedTextBox1.TypeValidationCompleted += new TypeValidationEventHandler(maskedTextBox1_TypeValidationCompleted); }
Private Sub Form1_Load(sender as Object, e as EventArgs) // Other code MaskedTextBox1.ValidatingType = GetType(System.DateTime) End Sub
Добавьте обработчик событий для события TypeValidationCompleted.
public void maskedTextBox1_TypeValidationCompleted(object sender, TypeValidationEventArgs e) { if (!e.IsValidInput) { toolTip1.ToolTipTitle = "Invalid Date Value"; toolTip1.Show("We're sorry, but the value you entered is not a valid date. Please change the value.", maskedTextBox1, 5000); e.Cancel = true; } }
Public Sub MaskedTextBox1_TypeValidationCompleted(sender as Object, e as TypeValidationEventArgs) If Not e.IsValidInput Then ToolTip1.ToolTipTitle = "Invalid Date Value" ToolTip1.Show("We're sorry, but the value you entered is not a valid date. Please change the value.", maskedTextBox1, 5000) e.Cancel = True End If End Sub