Lire en anglais

Partager via


AutoValidate Énumération

Définition

Détermine comment un contrôle valide ses données lorsqu'il perd le focus d'entrée d'utilisateur.

public enum AutoValidate
Héritage
AutoValidate

Champs

Disable 0

Une validation implicite ne se produit pas. La définition de cette valeur n'interfère pas avec les appels explicites à Validate() ou ValidateChildren().

EnableAllowFocusChange 2

Une validation implicite se produit, mais si elle échoue, le focus passe toujours sur le nouveau contrôle. Si la validation échoue, l'événement Validated n'est pas déclenché.

EnablePreventFocusChange 1

Une validation implicite se produit lorsque le contrôle perd le focus.

Inherit -1

Le contrôle hérite son comportement AutoValidate de son conteneur (par exemple, un formulaire ou un autre contrôle). S'il n'existe pas de contrôle conteneur, il prend par défaut la valeur EnablePreventFocusChange.

Exemples

L’exemple de code suivant désactive la validation implicite pour un formulaire et tous ses contrôles contenus, et effectue à la place manuellement la validation de tous les enfants du formulaire lorsque l’utilisateur clique sur un bouton de la souris.

using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Drawing;
using System.Text;

namespace TestValidation
{
    class Form1 : Form
    {
        private static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.Run(new Form1());
        }

        private TextBox firstNameBox, lastNameBox;
        private Button validateButton;
        private FlowLayoutPanel flowLayout1;

        private Form1()
        {
            this.Load += new EventHandler(Form1_Load);
        }

        void Form1_Load(object sender, EventArgs e)
        {
            // Turn off validation when a control loses focus. This will be inherited by child
            // controls on the form, enabling us to validate the entire form when the 
            // button is clicked instead of one control at a time.
            this.AutoValidate = AutoValidate.Disable;

            flowLayout1 = new FlowLayoutPanel();
            flowLayout1.Dock = DockStyle.Fill;
            flowLayout1.Name = "flowLayout1";

            firstNameBox = new TextBox();
            firstNameBox.Name = "firstNameBox";
            firstNameBox.Size = new Size(75, firstNameBox.Size.Height);
            firstNameBox.CausesValidation = true;
            firstNameBox.Validating += new System.ComponentModel.CancelEventHandler(firstNameBox_Validating);
            flowLayout1.Controls.Add(firstNameBox);

            lastNameBox = new TextBox();
            lastNameBox.Name = "lastNameBox";
            lastNameBox.Size = new Size(75, lastNameBox.Size.Height);
            lastNameBox.CausesValidation = true;
            lastNameBox.Validating += new System.ComponentModel.CancelEventHandler(lastNameBox_Validating);
            flowLayout1.Controls.Add(lastNameBox);

            validateButton = new Button();
            validateButton.Text = "Validate";
            // validateButton.Location = new Point(170, 10);
            validateButton.Size = new Size(75, validateButton.Size.Height);
            validateButton.Click += new EventHandler(validateButton_Click);
            flowLayout1.Controls.Add(validateButton);

            this.Controls.Add(flowLayout1);

            this.Text = "Test Validation";
        }

        void firstNameBox_Validating(object sender, System.ComponentModel.CancelEventArgs e)
        {
            if (firstNameBox.Text.Length == 0)
            {
                e.Cancel = true;
            }
            else
            {
                e.Cancel = false;
            }
        }

        void lastNameBox_Validating(object sender, System.ComponentModel.CancelEventArgs e)
        {
            e.Cancel = false;
        }

        void validateButton_Click(object sender, EventArgs e)
        {
            if (this.ValidateChildren())
            {
                MessageBox.Show("Validation succeeded!");
            }
            else
            {
                MessageBox.Show("Validation failed.");
            }
        }
    }
}

Remarques

Si un utilisateur désactive le focus d’un contrôle Windows Forms, le contrôle utilise AutoValidate pour déterminer comment valider ses données. Ce type de validation est appelé validation implicite, car elle se produit sans que le développeur d’application ait à effectuer un appel explicite à Validate ou ValidateChildren.

La propriété correspondant à cette valeur aura des valeurs par défaut différentes en fonction du type de contrôle. Pour plus d’informations, consultez Validation des entrées utilisateur dans Windows Forms.

S’applique à

Produit Versions
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Voir aussi