Leggere in inglese

Condividi tramite


ValidationConstraints Enumerazione

Definizione

Definisce le costanti che forniscono al metodo ValidateChildren(ValidationConstraints) le informazioni relative alle modalità di convalida dei controlli figlio di un contenitore.

Questa enumerazione supporta una combinazione bit per bit dei rispettivi valori dei membri.

C#
[System.Flags]
public enum ValidationConstraints
Ereditarietà
ValidationConstraints
Attributi

Campi

Nome Valore Descrizione
Enabled 2

Convalida i controlli figlio la cui proprietà Enabled è impostata su true.

ImmediateChildren 16

Convalida i controlli figlio contenuti direttamente nel contenitore. Non convalida gli eventuali elementi figlio di tali controlli. Ad esempio, se si dispone di un oggetto Form che contiene un oggetto UserControl personalizzato e se l'oggetto UserControl contiene un oggetto Button, utilizzando ImmediateChildren verrà generato l'evento Validating dell'oggetto UserControl, ma non l'evento Validating dell'oggetto Button.

None 0

Convalida tutti i controlli figlio e tutti gli elementi figlio dei controlli figlio, indipendentemente dalle impostazioni delle proprietà.

Selectable 1

Convalida i controlli figlio che possono essere selezionati.

TabStop 8

Convalida i controlli figlio in cui è stato impostato un valore di proprietà TabStop, che indica la possibilità di passare al controllo utilizzando il tasto TAB.

Visible 4

Convalida i controlli figlio la cui proprietà Visible è impostata su true.

Esempio

Nell'esempio di codice seguente verrà generato solo l'evento Validating per elementi figlio immediati del modulo la cui Enabled proprietà è 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);
        }
    }
}

Commenti

Per impostazione predefinita, ValidateChildren verranno convalidati tutti i controlli abilitati in un contenitore, ad esempio un modulo. Usare questa enumerazione per limitare i tipi di controlli di cui Validating viene generato l'evento.

È possibile combinare questi valori enumerati insieme a un'operazione OR bit per bit. La combinazione di parametri con un operatore OR bit per bit comporta un'operazione AND logica. Ad esempio, la chiamata ValidateChildren(ValidationConstraints.ImmediateChildren | ValidationConstraints.Enabled) genererà solo l'evento Validating sui controlli che sono entrambi elementi figlio immediati del contenitore AND sono abilitati.

Se non si specifica ImmediateChildren quando si chiama ValidateChildren, il metodo richiederà di convalidare tutti i controlli figlio nella gerarchia di controllo.

Si applica a

Prodotto Versioni
.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

Vedi anche