Поделиться через


Пример. Работа с элементом управления MaskedTextBox

В данном пошаговом руководстве представлены следующие задачи.

  • Инициализация элемента управления MaskedTextBox

  • Использование обработчика событий MaskInputRejected для оповещения пользователя о несоответствии символа маске

  • Назначение типа свойству ValidatingType и использование обработчика событий TypeValidationCompleted для оповещения пользователя о том, что значение, которое он пытается зафиксировать, является недопустимым для типа

Создание проекта и добавление элемента управления

Добавление элемента управления MaskedTextBox в форму

  1. Откройте форму, в которую нужно поместить элемент управления MaskedTextBox.

  2. Перетащите элемент управления MaskedTextBox из панели элементов в свою форму.

  3. Щелкните правой кнопкой мыши элемент управления и выберите пункт Свойства. В окне Свойства выберите свойство Mask и нажмите кнопку ... (многоточие) рядом с именем свойства.

  4. В диалоговом окне Маска ввода выберите маску Краткий формат даты и нажмите кнопку ОК.

  5. В окне Свойства присвойте свойству BeepOnError значение true. Если свойство задано, каждый раз, когда пользователь пытается ввести символ, нарушающий определение маски, будет подаваться короткий звуковой сигнал.

Сводка символов, поддерживаемых свойством Mask, см. в разделе "Примечания" свойства Mask.

Оповещение пользователя об ошибках ввода

Добавление всплывающей подсказки для отклоненных входных данных маски

  1. Вернитесь на панель элементов и добавьте ToolTip в форму.

  2. Создайте обработчик событий для события 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  
    

Оповещение пользователя о недопустимом типе

Добавление всплывающей подсказки для недопустимых типов данных

  1. В обработчике событий 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  
    
  2. Добавьте обработчик событий для события 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  
    

См. также