Condividi tramite


Procedura dettagliata: Lavorare con il controllo MaskedTextBox

Le attività illustrate in questa procedura dettagliata includono:

  • Inizializzazione del controllo MaskedTextBox

  • Utilizzo del gestore eventi MaskInputRejected per avvisare l'utente quando un carattere non è conforme alla maschera

  • Assegnazione di un tipo alla proprietà ValidatingType e uso del gestore eventi TypeValidationCompleted per avvisare l'utente quando il valore che sta tentando di eseguire il commit non è valido per il tipo

Creazione del progetto e aggiunta di un controllo

Per aggiungere un controllo MaskedTextBox al modulo

  1. Aprire il modulo in cui si desidera posizionare il controllo MaskedTextBox.

  2. Trascina un controllo MaskedTextBox dalla Toolbox al tuo form.

  3. Fare clic con il pulsante destro del mouse sull'elemento di controllo e scegliere Proprietà . Nella finestra Proprietà, selezionare la proprietà Maschera e fare clic sul pulsante ... (puntini di sospensione) accanto al nome della proprietà.

  4. Nella finestra di dialogo maschera di input, selezionare la maschera data breve e fare clic su OK.

  5. Nella finestra Proprietà impostare la proprietà BeepOnError su true. Questa proprietà causa un breve segnale acustico ogni volta che l'utente tenta di immettere un carattere che viola la definizione della maschera.

Per un riepilogo dei caratteri supportati dalla proprietà Mask, vedere la sezione Osservazioni della proprietà Mask.

Avvisare l'utente degli errori di input

Aggiungere un messaggio a comparsa per l'input della maschera rifiutato

  1. Tornare al casella degli strumenti di e aggiungere un al modulo.

  2. Creare un gestore eventi per l'evento MaskInputRejected che genera il ToolTip quando si verifica un errore di input. Il fumetto rimane visibile per cinque secondi, o fino a quando l'utente non ci clicca sopra.

    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
    

Informare l'utente di un tipo che non è valido

Aggiungere una notifica a comparsa per tipi di dati non validi

  1. Nel gestore eventi Load del modulo assegnare un oggetto Type che rappresenta il tipo di DateTime alla proprietà MaskedTextBox del controllo 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. Aggiungere un gestore eventi per l'evento 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
    

Vedere anche