Actualización: noviembre 2007
Define constantes que informan al método ValidateChildren sobre cómo debería validar los controles secundarios de un contenedor.
Esta enumeración tiene un atributo FlagsAttribute que permite una combinación bit a bit de los valores de miembro.
Espacio de nombres: System.Windows.FormsEnsamblado: System.Windows.Forms (en System.Windows.Forms.dll)
<FlagsAttribute> _
Public Enumeration ValidationConstraints
Dim instance As ValidationConstraints
[FlagsAttribute] public enum ValidationConstraints
[FlagsAttribute] public enum class ValidationConstraints
/** @attribute FlagsAttribute */ public enum ValidationConstraints
public enum ValidationConstraints
| Nombre de miembro | Descripción | |
|---|---|---|
| None | Valida todos los controles secundarios y todos los elementos secundarios de estos controles secundarios, sin tener en cuenta los valores de sus propiedades. | |
| Selectable | Valida los controles secundarios que se pueden seleccionar. | |
| Enabled | Valida los controles secundarios cuya propiedad Enabled está establecida en true. | |
| Visible | Valida los controles secundarios cuya propiedad Visible está establecida en true. | |
| TabStop | Valida los controles secundarios que tienen un conjunto de valores TabStop, lo que significa que el usuario puede desplazarse al control utilizando la tecla TAB. | |
| ImmediateChildren | Valida los controles secundarios que se alojan directamente en el contenedor. No valida ninguno de los elementos secundarios de estos controles secundarios. Por ejemplo, si tiene un objeto Form que contiene un control UserControl personalizado y este control UserControl contiene a su vez un control Button, al utilizar ImmediateChildren, se desencadenará el evento Validating del control UserControl, pero no el evento Validating del control Button. |
De manera predeterminada, ValidateChildren validará todos los controles habilitados en un contenedor, como, por ejemplo, un formulario. Utilice esta enumeración para restringir los tipos de controles cuyo evento Validating se desencadena.
Puede combinar estos valores enumerados junto con una operación OR bit a bit. De este modo, puede indicar una llamada al método ValidateChildren para que valide, por ejemplo, únicamente los controles habilitados que son elementos secundarios inmediatos del contenedor.
Si no especifica ImmediateChildren al llamar a ValidateChildren, el método necesitará que se validen todos los controles secundarios en la jerarquía de control.
El ejemplo de código siguiente sólo hará que se desencadene el evento Validating para los elementos secundarios inmediatos del formulario cuya propiedad Enabled es true.
Imports System.Drawing Imports System.Windows.Forms Namespace ValidateChildrenWithConstraints _ Class Form1 Inherits Form Public Overloads Shared Sub Main(ByVal args() As String) Application.EnableVisualStyles() Application.Run(New Form1()) End Sub Private Sub New() AddHandler Me.Load, AddressOf Form1_Load End Sub Dim WithEvents TextBox1, TextBox2, TextBox3 As TextBox Dim FlowPanel1 As FlowLayoutPanel Dim WithEvents SubTextBox1 As TextBox Dim WithEvents Button1 As Button Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) ' Create controls on form. Me.Size = New Size(500, 300) Me.AutoValidate = AutoValidate.Disable TextBox1 = New TextBox() TextBox1.Location = New Point(20, 20) TextBox1.Size = New Size(75, TextBox1.Size.Height) TextBox1.CausesValidation = True Me.Controls.Add(TextBox1) TextBox2 = New TextBox() TextBox2.Location = New Point(105, 20) TextBox2.Size = New Size(75, TextBox2.Size.Height) TextBox2.CausesValidation = True Me.Controls.Add(TextBox2) TextBox3 = New TextBox() TextBox3.Location = New Point(190, 20) TextBox3.Size = New Size(75, TextBox3.Size.Height) TextBox3.Enabled = False TextBox3.CausesValidation = True Me.Controls.Add(TextBox3) Button1 = New Button() Button1.Text = "Click" Button1.Location = New Point(270, 20) Me.Controls.Add(Button1) FlowPanel1 = New FlowLayoutPanel() FlowPanel1.Size = New Size(400, 100) FlowPanel1.Dock = DockStyle.Bottom SubTextBox1 = New TextBox() SubTextBox1.CausesValidation = True FlowPanel1.Controls.Add(SubTextBox1) Me.Controls.Add(FlowPanel1) End Sub 'Form1_Load Sub SubTextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles SubTextBox1.Validating MessageBox.Show("SubTextBox1 Validating!") End Sub 'SubTextBox1_Validating Sub TextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating MessageBox.Show("TextBox1 Validating!") End Sub 'TextBox1_Validating Sub TextBox2_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox2.Validating MessageBox.Show("TextBox2 Validating!") End Sub 'TextBox2_Validating Sub TextBox3_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox3.Validating MessageBox.Show("TextBox3 Validating!") End Sub 'TextBox3_Validating Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles button1.Click Me.ValidateChildren((ValidationConstraints.ImmediateChildren Or ValidationConstraints.Enabled)) End Sub 'Button1_Click End Class 'Form1 End Namespace 'ValidateChildrenWithConstraints
using System; using System.Collections.Generic; using System.Text; using System.Drawing; using System.Windows.Forms; namespace ValidateChildrenWithConstraints { class Form1 : Form { public static void Main(string[] args) { Application.EnableVisualStyles(); Application.Run(new Form1()); } private Form1() { this.Load += new EventHandler(Form1_Load); } void Form1_Load(object sender, EventArgs e) { // Create controls on form. TextBox textBox1, textBox2, textBox3; FlowLayoutPanel flowPanel1; TextBox subTextBox1; Button button1; this.Size = new Size(500, 300); this.AutoValidate = AutoValidate.Disable; textBox1 = new TextBox(); textBox1.Location = new Point(20, 20); textBox1.Size = new Size(75, textBox1.Size.Height); textBox1.CausesValidation = true; textBox1.Validating += new System.ComponentModel.CancelEventHandler(textBox1_Validating); this.Controls.Add(textBox1); textBox2 = new TextBox(); textBox2.Location = new Point(105, 20); textBox2.Size = new Size(75, textBox2.Size.Height); textBox2.CausesValidation = true; textBox2.Validating += new System.ComponentModel.CancelEventHandler(textBox2_Validating); this.Controls.Add(textBox2); textBox3 = new TextBox(); textBox3.Location = new Point(190, 20); textBox3.Size = new Size(75, textBox3.Size.Height); textBox3.Enabled = false; textBox3.CausesValidation = true; textBox3.Validating += new System.ComponentModel.CancelEventHandler(textBox3_Validating); this.Controls.Add(textBox3); button1 = new Button(); button1.Text = "Click"; button1.Location = new Point(270, 20); button1.Click += new EventHandler(button1_Click); this.Controls.Add(button1); flowPanel1 = new FlowLayoutPanel(); flowPanel1.Size = new Size(400, 100); flowPanel1.Dock = DockStyle.Bottom; subTextBox1 = new TextBox(); subTextBox1.CausesValidation = true; subTextBox1.Validating += new System.ComponentModel.CancelEventHandler(subTextBox1_Validating); flowPanel1.Controls.Add(subTextBox1); this.Controls.Add(flowPanel1); } void subTextBox1_Validating(object sender, System.ComponentModel.CancelEventArgs e) { MessageBox.Show("subTextBox1 Validating!"); } void textBox1_Validating(object sender, System.ComponentModel.CancelEventArgs e) { MessageBox.Show("textBox1 Validating!"); } void textBox2_Validating(object sender, System.ComponentModel.CancelEventArgs e) { MessageBox.Show("textBox2 Validating!"); } void textBox3_Validating(object sender, System.ComponentModel.CancelEventArgs e) { MessageBox.Show("textBox3 Validating!"); } void button1_Click(object sender, EventArgs e) { this.ValidateChildren(ValidationConstraints.ImmediateChildren | ValidationConstraints.Enabled); } } }
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
.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.