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
Aprire il form in cui si desidera posizionare il MaskedTextBox controllo.
Trascinare un MaskedTextBox controllo dalla casella degli strumenti al form.
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à.
Nella finestra di dialogo Maschera di input selezionare la maschera data breve e fare clic su OK.
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
Tornare alla casella degli strumenti e aggiungere un oggetto ToolTip al modulo.
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
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
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
.NET Desktop feedback