AutoValidate, énumération
Assembly : System.Windows.Forms (dans system.windows.forms.dll)
| Nom de membre | Description | |
|---|---|---|
![]() | Disable | 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 | 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 | Une validation implicite se produit lorsque le contrôle perd le focus. |
![]() | Inherit | 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. |
Si un utilisateur désactive le focus d'un contrôle Windows Forms, le contrôle utilise AutoValidate pour déterminer le mode de validation de ses données. Ce type de validation est appelé validation implicite, car il ne nécessite pas d'appel explicite à Validate ou ValidateChildren par le développeur d'applications.
La propriété correspondant à cette valeur a des valeurs par défaut différentes en fonction du type de contrôle. Pour plus d'informations, consultez Validation des entrées d'utilisateur dans les Windows Forms (Windows Forms).
L'exemple de code suivant désactive la validation implicite d'un formulaire et de tous les contrôles qu'il contient, et exécute manuellement une validation de tous les enfants du formulaire lorsque l'utilisateur clique sur le 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."); } } } }
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition
Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.
