MaskedTextBox.TypeValidationCompleted Evento

Definizione

Si verifica quando l'oggetto MaskedTextBox ha completato l'analisi del valore corrente utilizzando la proprietà ValidatingType.Occurs when MaskedTextBox has finished parsing the current value using the ValidatingType property.

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

TypeValidationEventHandler

Esempio

Nell'esempio di codice seguente viene eseguito un tentativo di analizzare l'input dell'utente come DateTime oggetto valido.The following code example attempts to parse the user's input as a valid DateTime object. Se ha esito negativo, il TypeValidationCompleted gestore eventi Visualizza un messaggio di errore all'utente.If it fails, the TypeValidationCompleted event handler displays an error message to the user. Se il valore è un valore valido DateTime , il codice verifica che la data specificata non sia precedente alla data odierna.If the value is a valid DateTime, the code verifies that the date supplied is not prior to today's date. Questo esempio di codice richiede che il progetto di Windows Form contenga un MaskedTextBox controllo denominato MaskedTextBox1 e un ToolTip controllo denominato ToolTip1 .This code example requires that your Windows Forms project contains a MaskedTextBox control named MaskedTextBox1 and a ToolTip control named 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 convaliderà facoltativamente l'input utente rispetto al tipo definito dalla relativa MaskedTextBox.ValidatingType Proprietà.The MaskedTextBox control will optionally validate user input against the type defined by its MaskedTextBox.ValidatingType property. Quando questa proprietà non è presente null , si verifica la serie di eventi seguente:When this property is not null, the following series of events occurs:

  1. La sequenza di convalida inizia quando si verifica una delle condizioni seguenti:The validation sequence begins when one of the following occurs:

  2. Uno di questi eventi genera una chiamata al Parse metodo del tipo specificato con la ValidatingType Proprietà.Any of these events result in a call to the Parse method of the type specified with the ValidatingType property. Parse è responsabile della conversione della stringa di input formattata nel tipo di destinazione.Parse is responsible for the conversion of the formatted input string to the target type. Una conversione corretta equivale a una convalida corretta.A successful conversion equates to a successful validation.

  3. Quando Parse restituisce, TypeValidationCompleted viene generato l'evento.After Parse returns, the TypeValidationCompleted event is raised. Il gestore eventi per questo evento viene in genere implementato per eseguire l'elaborazione della convalida del tipo o della maschera.The event handler for this event is most commonly implemented to perform type or mask validation processing. Riceve un TypeValidationEventArgs parametro che contiene informazioni sulla conversione. ad esempio, il IsValidInput membro indica se la conversione è stata eseguita correttamente.It receives a TypeValidationEventArgs parameter containing information about the conversion; for example, the IsValidInput member indicates whether the conversion was successful.

  4. Dopo che il gestore eventi per l' TypeValidationCompleted evento restituisce, viene generato l'evento di convalida standard Validating .After the event handler for the TypeValidationCompleted event returns, the standard validation event, Validating, is raised. Un gestore può essere implementato per eseguire la convalida standard, ad esempio l'annullamento dell'evento.A handler can be implemented to perform standard validation, perhaps including canceling the event.

  5. Se l'evento non viene annullato nel passaggio 3, viene generato l'evento di convalida del controllo standard Validated .If the event is not canceled in step 3, the standard control validation event Validated is raised.

Se la Cancel proprietà è impostata su true nel TypeValidationCompleted gestore eventi, l'evento verrà annullato e il MaskedTextBox controllo manterrà lo stato attivo, a meno che l'evento successivo non Validating CancelEventArgs.Cancel riporti la versione della proprietà a false .If the Cancel property is set to true in the TypeValidationCompleted event handler, the event will be canceled and the MaskedTextBox control retains focus, unless the subsequent Validating event sets its version of the CancelEventArgs.Cancel property back to false.

Si applica a

Vedi anche