MaskedTextBox.TypeValidationCompleted Événement
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 :
La séquence de validation commence lorsque l’un des éléments suivants se produit :
MaskedTextBox contrôle perd le focus.
La Text propriété est récupérée.
La méthode ValidateText est appelée.
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.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.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.
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
.