Procédure pas à pas : utilisation du contrôle MaskedTextBox

Cette procédure pas à pas décrit notamment les tâches suivantes :

  • Initialisation du MaskedTextBox contrôle

  • Utilisation du gestionnaire d’événements MaskInputRejected pour alerter l’utilisateur lorsqu’un caractère n’est pas conforme au masque

  • Affectation d’un type à la ValidatingType propriété et utilisation du TypeValidationCompleted gestionnaire d’événements pour alerter l’utilisateur lorsque la valeur qu’il tente de valider n’est pas valide pour le type

Création du projet et ajout d’un contrôle

Pour ajouter un contrôle MaskedTextBox à votre formulaire

  1. Ouvrez le formulaire sur lequel vous souhaitez placer le MaskedTextBox contrôle.

  2. Faites glisser un MaskedTextBox contrôle de la boîte à outils vers votre formulaire.

  3. 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é Mask , puis cliquez sur le bouton ... (points de suspension) en regard du nom de la propriété.

  4. Dans la boîte de dialogue Masque d’entrée, sélectionnez le masque de date courte, puis cliquez sur OK.

  5. Dans la fenêtre Propriétés , définissez la BeepOnError propriété sur true. Cette propriété provoque un bip court à sonner chaque fois que l’utilisateur tente d’entrer un caractère qui enfreint la définition du masque.

Pour obtenir un résumé des caractères pris en charge par la propriété Mask, consultez la section Notes de la Mask propriété.

Avertir l’utilisateur des erreurs d’entrée

Ajouter une info-bulle pour l’entrée masquée rejetée

  1. Revenez à la boîte à outils et ajoutez un ToolTip à votre formulaire.

  2. Créez un gestionnaire d’événements pour l’événement MaskInputRejected qui déclenche l’erreur ToolTip d’entrée. La bulle reste 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  
    

Avertir l’utilisateur d’un type non valide

Ajouter une info-bulle pour les types de données non valides

  1. Dans le gestionnaire d’événements de Load votre formulaire, affectez un Type objet représentant le DateTime type à la MaskedTextBox propriété du ValidatingType contrôle :

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

Voir aussi