Partager via


MaskedTextBox.TypeValidationCompleted Événement

Définition

Se produit lorsque MaskedTextBox a fini d'analyser la valeur actuelle à l'aide de la propriété 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 

Type d'événement

Exemples

L’exemple de code suivant tente d’analyser l’entrée de l’utilisateur en tant qu’objet valide DateTime . En cas d’échec, le TypeValidationCompleted gestionnaire d’événements affiche un message d’erreur à l’utilisateur. Si la valeur est valide DateTime, le code vérifie que la date fournie n’est pas antérieure à la date d’aujourd’hui. Cet exemple de code nécessite que votre projet Windows Forms contienne un MaskedTextBox contrôle nommé MaskedTextBox1 et un ToolTip contrôle nommé 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

Remarques

Le MaskedTextBox contrôle valide éventuellement l’entrée utilisateur par rapport au type défini par sa MaskedTextBox.ValidatingType propriété. Lorsque cette propriété n’est pas null, la série d’événements suivante se produit :

  1. La séquence de validation commence lorsque l’un des éléments suivants se produit :

  2. L’un de ces événements entraîne un appel à la Parse méthode du type spécifié avec la ValidatingType propriété . Parse est responsable de la conversion de la chaîne d’entrée mise en forme en type cible. Une conversion réussie équivaut à une validation réussie.

  3. Une fois Parse retourné, l’événement TypeValidationCompleted est déclenché. Le gestionnaire d’événements de cet événement est le plus souvent implémenté pour effectuer un traitement de validation de type ou de masque. Il reçoit un TypeValidationEventArgs paramètre contenant des informations sur la conversion ; par exemple, le IsValidInput membre indique si la conversion a réussi.

  4. Une fois que le gestionnaire d’événements pour l’événement TypeValidationCompleted est retourné, l’événement de validation standard, Validating, est déclenché. Un gestionnaire peut être implémenté pour effectuer une validation standard, notamment l’annulation de l’événement.

  5. Si l’événement n’est pas annulé à l’étape 3, l’événement Validated de validation de contrôle standard est déclenché.

Si la Cancel propriété est définie true sur dans le TypeValidationCompleted gestionnaire d’événements, l’événement est annulé et le contrôle conserve le MaskedTextBox focus, sauf si l’événement suivant Validating rétablit sa version de la CancelEventArgs.Cancel propriété sur false.

S’applique à

Voir aussi