Ler em inglês

Partilhar via


ValidationConstraints Enumeração

Definição

Define constantes que informam o ValidateChildren(ValidationConstraints) de como ele deve validar os controles filho de um contêiner.

Essa enumeração dá suporte a uma combinação bit a bit dos valores de membro.

C#
[System.Flags]
public enum ValidationConstraints
Herança
ValidationConstraints
Atributos

Campos

Nome Valor Description
Enabled 2

Valida os controles filho cuja propriedade Enabled está definida como true.

ImmediateChildren 16

Valida os controles filho que são hospedados diretamente no contêiner. Não valida nenhum filho desses filhos. Por exemplo, se você tiver um Form que contém um UserControl personalizado e o UserControl contiver um Button, o uso de ImmediateChildren fará com que o evento Validating do UserControl ocorra, mas não o evento Validating do Button.

None 0

Valida todos os controles filho e todos os filhos desses controles filho, independentemente de suas definições de propriedade.

Selectable 1

Valida os controles filho que podem ser selecionados.

TabStop 8

Valida os controles filho que têm um conjunto de valores TabStop, o que significa que o usuário pode navegar para o controle usando a tecla TAB.

Visible 4

Valida os controles filho cuja propriedade Visible está definida como true.

Exemplos

O exemplo de código a seguir fará com que o Validating evento seja gerado apenas para filhos imediatos do formulário cuja Enabled propriedade é true.

C#
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);
        }
    }
}

Comentários

Por padrão, ValidateChildren validará todos os controles habilitados em um contêiner, como um formulário. Use essa enumeração para restringir os tipos de controles cujo Validating evento é gerado.

Você pode combinar esses valores enumerados com uma operação OR bit a bit. Combinar parâmetros com um operador OR bit a bit resultará em uma operação AND lógica. Por exemplo, chamar ValidateChildren(ValidationConstraints.ImmediateChildren | ValidationConstraints.Enabled) só gerará o Validating evento em controles que são filhos imediatos do contêiner E estão habilitados.

Se você não especificar ImmediateChildren ao chamar ValidateChildren, o método exigirá que você valide todos os controles filho na hierarquia de controle.

Aplica-se a

Produto Versões
.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

Confira também