MaskedTextBox.TypeValidationCompleted Evento

Definizione

Si verifica quando l'oggetto MaskedTextBox ha completato l'analisi del valore corrente utilizzando la proprietà ValidatingType.

C#
public event System.Windows.Forms.TypeValidationEventHandler TypeValidationCompleted;
C#
public event System.Windows.Forms.TypeValidationEventHandler? TypeValidationCompleted;

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 MaskedTextBox1ToolTip1.

C#
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);
}

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:

  1. La sequenza di convalida inizia quando si verifica una delle operazioni seguenti:

  2. 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.

  3. 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.

  4. 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.

  5. 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.

Si applica a

Prodotto Versioni
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

Vedi anche