Procedura dettagliata: utilizzo del controllo MaskedTextBox

Aggiornamento: novembre 2007

Di seguito sono elencate le attività illustrate nella procedura dettagliata:

  • Inizializzazione del controllo MaskedTextBox

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

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

Per una versione operativa completa del controllo MaskedTextBox in cui venga fornita una dimostrazione delle funzionalità avanzate, quali ad esempio la convalida mediante tipi di dati personalizzati, vedere Esempio di controllo MaskedTextBox.

Creazione del progetto e aggiunta di un controllo

Per aggiungere un controllo MaskedTextBox al form

  1. Aprire il form in cui inserire il controllo MaskedTextBox.

  2. Trascinare un controllo MaskedTextBox dalla Casella degli strumenti nel form.

  3. Fare clic con il pulsante destro del mouse sul controllo, quindi scegliere Proprietà. Nella finestra Proprietà selezionare la proprietà Mask e fare clic sul pulsante con i puntini di sospensione accanto al nome della proprietà.

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

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

Segnalazione di errori di input

Aggiungere una descrizione comandi per l'input di maschera rifiutato

  1. Tornare alla Casella degli strumenti e aggiungere un controllo ToolTip al form.

  2. Creare un gestore eventi per l'evento MaskInputRejected che genera il controllo ToolTip quando si verifica un errore di input. La descrizione comandi resta visibile per cinque secondi o finché l'utente non la seleziona con un clic.

    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
    

Segnalazione di un tipo non valido

Aggiungere una descrizione comandi per i tipi di dati non validi

  1. Nel gestore eventi Load del form assegnare un oggetto Type che rappresenta il tipo DateTime alla proprietà ValidatingType del controllo 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. 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

Riferimenti

MaskedTextBox

Altre risorse

Controllo MaskedTextBox (Windows Form)