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


Пошаговое руководство: Работа с элементом управления «MaskedTextBox»

Задачи, показанные в этом пошаговом руководстве, включают:

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

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

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

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

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

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

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

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

  4. В диалоговом окне "Маска ввода" выберите маску "Короткая дата" и нажмите "OK".

  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  
    

См. также