MaskedTextBox.TypeValidationCompleted Evento
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Si verifica quando l'oggetto MaskedTextBox ha completato l'analisi del valore corrente utilizzando la proprietà ValidatingType.
public:
event System::Windows::Forms::TypeValidationEventHandler ^ TypeValidationCompleted;
public event System.Windows.Forms.TypeValidationEventHandler TypeValidationCompleted;
public event System.Windows.Forms.TypeValidationEventHandler? TypeValidationCompleted;
member this.TypeValidationCompleted : System.Windows.Forms.TypeValidationEventHandler
Public Custom Event TypeValidationCompleted As TypeValidationEventHandler
Tipo evento
Esempio
L'esempio di codice seguente tenta di analizzare l'input dell'utente come oggetto valido DateTime . Se ha esito negativo, il TypeValidationCompleted gestore eventi visualizza un messaggio di errore all'utente. Se il valore è un valore valido DateTime, il codice verifica che la data specificata non sia precedente alla data di oggi. Questo esempio di codice richiede che il progetto di Windows Forms contenga un MaskedTextBox controllo denominato e un ToolTip controllo denominato MaskedTextBox1
ToolTip1
.
private void Form1_Load(object sender, EventArgs e)
{
maskedTextBox1.Mask = "00/00/0000";
maskedTextBox1.ValidatingType = typeof(System.DateTime);
maskedTextBox1.TypeValidationCompleted += new TypeValidationEventHandler(maskedTextBox1_TypeValidationCompleted);
maskedTextBox1.KeyDown += new KeyEventHandler(maskedTextBox1_KeyDown);
toolTip1.IsBalloon = true;
}
void maskedTextBox1_TypeValidationCompleted(object sender, TypeValidationEventArgs e)
{
if (!e.IsValidInput)
{
toolTip1.ToolTipTitle = "Invalid Date";
toolTip1.Show("The data you supplied must be a valid date in the format mm/dd/yyyy.", maskedTextBox1, 0, -20, 5000);
}
else
{
//Now that the type has passed basic type validation, enforce more specific type rules.
DateTime userDate = (DateTime)e.ReturnValue;
if (userDate < DateTime.Now)
{
toolTip1.ToolTipTitle = "Invalid Date";
toolTip1.Show("The date in this field must be greater than today's date.", maskedTextBox1, 0, -20, 5000);
e.Cancel = true;
}
}
}
// Hide the tooltip if the user starts typing again before the five-second display limit on the tooltip expires.
void maskedTextBox1_KeyDown(object sender, KeyEventArgs e)
{
toolTip1.Hide(maskedTextBox1);
}
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.MaskedTextBox1.Mask = "00/00/0000"
Me.MaskedTextBox1.ValidatingType = GetType(System.DateTime)
Me.ToolTip1.IsBalloon = True
End Sub
Private Sub MaskedTextBox1_TypeValidationCompleted(ByVal sender As Object, ByVal e As TypeValidationEventArgs) Handles MaskedTextBox1.TypeValidationCompleted
If (Not e.IsValidInput) Then
Me.ToolTip1.ToolTipTitle = "Invalid Date"
Me.ToolTip1.Show("The data you supplied must be a valid date in the format mm/dd/yyyy.", Me.MaskedTextBox1, 0, -20, 5000)
Else
' Now that the type has passed basic type validation, enforce more specific type rules.
Dim UserDate As DateTime = CDate(e.ReturnValue)
If (UserDate < DateTime.Now) Then
Me.ToolTip1.ToolTipTitle = "Invalid Date"
Me.ToolTip1.Show("The date in this field must be greater than today's date.", Me.MaskedTextBox1, 0, -20, 5000)
e.Cancel = True
End If
End If
End Sub
' Hide the tooltip if the user starts typing again before the five-second display limit on the tooltip expires.
Private Sub MaskedTextBox1_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs) Handles MaskedTextBox1.KeyDown
Me.ToolTip1.Hide(Me.MaskedTextBox1)
End Sub
Commenti
Il MaskedTextBox controllo convalida facoltativamente l'input dell'utente rispetto al tipo definito dalla relativa MaskedTextBox.ValidatingType proprietà. Quando questa proprietà non null
è , si verifica la serie di eventi seguente:
La sequenza di convalida inizia quando si verifica una delle operazioni seguenti:
MaskedTextBox controlla lo stato attivo.
La Text proprietà viene recuperata.
Viene chiamato il metodo ValidateText .
Uno di questi eventi comporta una chiamata al
Parse
metodo del tipo specificato con la ValidatingType proprietà .Parse
è responsabile della conversione della stringa di input formattata nel tipo di destinazione. Una conversione riuscita equivale a una convalida riuscita.Dopo
Parse
aver restituito, viene generato l'evento TypeValidationCompleted . Il gestore eventi per questo evento è più comunemente implementato per eseguire l'elaborazione di convalida del tipo o della maschera. Riceve un TypeValidationEventArgs parametro contenente informazioni sulla conversione, ad esempio il IsValidInput membro indica se la conversione ha avuto esito positivo.Dopo che il gestore eventi per l'evento restituisce, viene generato l'evento TypeValidationCompleted di convalida standard, Validating, . Un gestore può essere implementato per eseguire la convalida standard, ad esempio annullando l'evento.
Se l'evento non viene annullato nel passaggio 3, viene generato l'evento Validated di convalida del controllo standard.
Se la Cancel proprietà è impostata su true
nel TypeValidationCompleted gestore eventi, l'evento verrà annullato e il controllo mantiene lo stato attivo, a meno che l'evento MaskedTextBox successivo Validating imposta la versione della CancelEventArgs.Cancel proprietà su false
.