Udostępnij przez


Przewodnik: praca z kontrolką MaskedTextBox

Zadania przedstawione w tym przewodniku obejmują:

  • Inicjowanie kontrolki MaskedTextBox

  • Używanie programu obsługi zdarzeń MaskInputRejected w celu powiadamiania użytkownika, gdy znak nie jest zgodny z maską

  • Przypisywanie typu do właściwości ValidatingType i używanie programu obsługi zdarzeń TypeValidationCompleted w celu alertu użytkownika, gdy wartość, którą próbuje zatwierdzić, jest nieprawidłowa dla typu

Tworzenie projektu i dodawanie kontrolki

Aby dodać kontrolkę MaskedTextBox do formularza

  1. Otwórz formularz, w którym chcesz umieścić kontrolkę MaskedTextBox.

  2. Przeciągnij kontrolkę MaskedTextBox z paska narzędzi na formularz.

  3. Kliknij prawym przyciskiem myszy kontrolkę i wybierz pozycję właściwości . W oknie Właściwości wybierz właściwość Maska i kliknij przycisk ... (wielokropek) obok nazwy właściwości.

  4. W oknie dialogowym Maska Wprowadzania wybierz maskę krótkiej daty, a następnie kliknij przycisk OK.

  5. W oknie właściwości ustaw właściwość BeepOnError na wartość true. Ta właściwość powoduje krótki sygnał dźwiękowy za każdym razem, gdy użytkownik próbuje wprowadzić znak naruszający definicję maski.

Aby uzyskać podsumowanie znaków, które obsługuje właściwość Maska, zobacz sekcję Uwagi właściwości Mask.

Powiadomienie użytkownika o błędach wejściowych

Dodaj poradę dymkową dla odrzuconych danych wejściowych maski

  1. Wróć do przybornika i dodaj ToolTip do formularza.

  2. Utwórz procedurę obsługi zdarzeń dla zdarzenia MaskInputRejected, które zgłasza ToolTip w przypadku wystąpienia błędu wejściowego. Wskazówka balonu pozostaje widoczna przez pięć sekund lub dopóki użytkownik jej nie kliknie.

    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
    

Powiadomienie użytkownika o typie, który jest nieprawidłowy

Dodawanie porady balonowej dla nieprawidłowych typów danych

  1. W procedurze obsługi zdarzeń Load formularza przypisz obiekt Type reprezentujący typ DateTime do właściwości MaskedTextBox kontrolki ValidatingType:

    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. Dodaj procedurę obsługi zdarzeń dla zdarzenia 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
    

Zobacz także