AutoValidate (Enumeración)
Actualización: noviembre 2007
Determina cómo valida un control sus datos cuando pierde el foco de los datos proporcionados por el usuario.
Ensamblado: System.Windows.Forms (en System.Windows.Forms.dll)
| Nombre de miembro | Descripción | |
|---|---|---|
|
Disable | No se produce la validación implícita. El establecimiento de este valor no interferirá con las llamadas explícitas a Validate o ValidateChildren. |
|
EnablePreventFocusChange | Se produce la validación implícita cuando el control pierde el foco. |
|
EnableAllowFocusChange | Se produce la validación implícita pero, si hay un error en la validación, el foco seguirá cambiando al nuevo control. Si se produce un error en la validación, no se desencadenará el evento Validated. |
|
Inherit | El control hereda el comportamiento de AutoValidate de su contenedor (por ejemplo, un formulario u otro control). Si no hay ningún control contenedor, tiene como valor predeterminado EnablePreventFocusChange. |
Si un usuario desactiva el foco de un control de formularios Windows Forms, el control utiliza AutoValidate para determinar cómo validar sus datos. Este tipo de validación se denomina validación implícita, ya que se produce sin que el desarrollador de aplicaciones tenga que hacer una llamada explícita a Validate, ni a ValidateChildren.
La propiedad que corresponde a este valor tendrá distintos valores predeterminados en función del tipo de control. Para obtener más información, vea Validación de los datos proporcionados por el usuario en formularios Windows Forms.
En el ejemplo de código siguiente se desactiva la validación implícita de un formulario y de todos los controles que contiene y, en su lugar, realiza manualmente la validación de todos los elementos secundarios del formulario al hacer clic en un botón del mouse (ratón).
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 Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile para Smartphone, Windows Mobile para Pocket PC
.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.