Condividi tramite


Procedura dettagliata: utilizzo del controllo MaskedTextBox

Le attività illustrate nella procedura dettagliata sono le seguenti:

  • Inizializzazione del MaskedTextBox controllo

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

  • Assegnazione di un tipo alla ValidatingType proprietà e uso del TypeValidationCompleted gestore eventi 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 form in cui si desidera posizionare il MaskedTextBox controllo.

  2. Trascinare un MaskedTextBox controllo dalla casella degli strumenti al form.

  3. Fare clic con il pulsante destro del mouse sul controllo e scegliere Proprietà. Nella finestra Proprietà selezionare la proprietà Mask 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 BeepOnError proprietà 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 Mask proprietà .

Avvisare l'utente degli errori di input

Aggiungere un suggerimento per il fumetto per l'input della maschera rifiutata

  1. Tornare alla casella degli strumenti e aggiungere un oggetto ToolTip al modulo.

  2. Creare un gestore eventi per l'evento MaskInputRejected che genera quando ToolTip si verifica un errore di input. Il suggerimento per il fumetto rimane visibile per cinque secondi o fino a quando l'utente non lo fa 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  
    

Avvisare l'utente di un tipo non valido

Aggiungere un suggerimento per il fumetto per i tipi di dati non validi

  1. Nel gestore eventi del Load modulo assegnare un Type oggetto che rappresenta il DateTime tipo alla MaskedTextBox proprietà del ValidatingType controllo:

    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  
    

Vedi anche