Procédure pas à pas : utilisation du contrôle MaskedTextBox
Mise à jour : novembre 2007
Cette procédure pas à pas illustre les tâches suivantes :
Initialisation du contrôle MaskedTextBox
Utilisation du gestionnaire d'événements MaskInputRejected pour avertir l'utilisateur lorsqu'un caractère n'est pas conforme au masque
Assignation d'un type à la propriété ValidatingType et utilisation du gestionnaire d'événements TypeValidationCompleted pour avertir l'utilisateur lorsque la valeur qu'il essaie de valider n'est pas valide pour le type
Pour une version de travail complète du contrôle MaskedTextBox qui montre des fonctionnalités avancées telles que la validation à l'aide de types de données personnalisés, consultez Contrôle MaskedTextBox, exemple.
Création du projet et ajout d'un contrôle
Pour ajouter un contrôle MaskedTextBox à votre formulaire
Ouvrez le formulaire sur lequel vous souhaitez placer le contrôle MaskedTextBox.
Faites glisser un contrôle MaskedTextBox de la Boîte à outils vers votre formulaire.
Cliquez avec le bouton droit sur le contrôle et choisissez Propriétés. Dans la fenêtre Propriétés, sélectionnez la propriété Masque et cliquez sur le bouton de sélection ... en regard du nom de la propriété.
Dans la boîte de dialogue Masque de saisie, sélectionnez le masque Date courte, puis cliquez sur OK.
Dans la fenêtre Propriétés, affectez à la propriété BeepOnError la valeur true. Avec cette propriété, un court signal sonore est déclenché chaque fois que l'utilisateur essaie d'entrer un caractère qui n'est pas conforme à la définition du masque.
Alerter l'utilisateur des erreurs d'entrée
Ajoutez une info-bulle pour les refus d'entrée dans le masque
Retournez à la Boîte à outils et ajoutez une ToolTip à votre formulaire.
Créez un gestionnaire d'événements pour l'événement MaskInputRejected qui déclenche le ToolTip en cas d'erreur d'entrée. L'info-bulle demeure visible pendant cinq secondes, ou jusqu'à ce que l'utilisateur clique dessus.
public void Form1_Load(Object sender, EventArgs e) { ... // Other initialization code maskedTextBox1.Mask = "00/00/0000"; maskedTextBox1.MaskInputRejected += new MaskInputRejectedEventHandler(maskedTextBox1_MaskInputRejected) } void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e) { toolTip1.ToolTipTitle = "Invalid Input"; toolTip1.Show("We're sorry, but only digits (0-9) are allowed in dates.", maskedTextBox1, maskedTextBox1.Location, 5000); }
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.ToolTip1.IsBalloon = True Me.MaskedTextBox1.Mask = "00/00/0000" End Sub Private Sub MaskedTextBox1_MaskInputRejected(sender as Object, e as MaskInputRejectedEventArgs) Handles MaskedTextBox1.MaskInputRejected ToolTip1.ToolTipTitle = "Invalid Input" ToolTip1.Show("We're sorry, but only digits (0-9) are allowed in dates.", MaskedTextBox1, 5000) End Sub
Alerter l'utilisateur des types non valides
Ajoutez une info-bulle pour les types de données non valides
Dans le gestionnaire d'événements Load de votre formulaire, assignez un objet Type représentant le type DateTime à la propriété ValidatingType du contrôle MaskedTextBox :
private void Form1_Load(Object sender, EventArgs e) { // Other code maskedTextBox1.ValidatingType = typeof(System.DateTime); maskedTextBox1.TypeValidationCompleted += new TypeValidationEventHandler(maskedTextBox1_TypeValidationCompleted); }
Private Sub Form1_Load(sender as Object, e as EventArgs) // Other code MaskedTextBox1.ValidatingType = GetType(System.DateTime) End Sub
Ajoutez un gestionnaire d'événements pour l'événement TypeValidationCompleted :
public void maskedTextBox1_TypeValidationCompleted(object sender, TypeValidationEventArgs e) { if (!e.IsValidInput) { toolTip1.ToolTipTitle = "Invalid Date Value"; toolTip1.Show("We're sorry, but the value you entered is not a valid date. Please change the value.", maskedTextBox1, 5000); e.Cancel = true; } }
Public Sub MaskedTextBox1_TypeValidationCompleted(sender as Object, e as TypeValidationEventArgs) If Not e.IsValidInput Then ToolTip1.ToolTipTitle = "Invalid Date Value" ToolTip1.Show("We're sorry, but the value you entered is not a valid date. Please change the value.", maskedTextBox1, 5000) e.Cancel = True End If End Sub