Auf Englisch lesen

Freigeben über


ValidationConstraints Enumeration

Definition

Definiert Konstanten, die ValidateChildren(ValidationConstraints) darüber informieren, wie die untergeordneten Steuerelemente eines Containers überprüft werden sollen.

Diese Enumeration unterstützt eine bitweise Kombination ihrer Memberwerte.

[System.Flags]
public enum ValidationConstraints
Vererbung
ValidationConstraints
Attribute

Felder

Name Wert Beschreibung
Enabled 2

Validiert untergeordnete Steuerelemente, deren Enabled-Eigenschaft auf true festgelegt ist.

ImmediateChildren 16

Validiert untergeordnete Steuerelemente, die direkt innerhalb des Containers gehostet werden. Validiert keine der untergeordneten Steuerelemente dieser untergeordneten Steuerelemente. Wenn z. B. ein Form ein benutzerdefiniertes UserControl enthält und das UserControl einen Button enthält, wird durch das Verwenden von ImmediateChildren das Validating-Ereignis des UserControl ausgelöst, jedoch nicht das Validating-Ereignis des Button.

None 0

Validiert alle untergeordneten Steuerelemente und alle untergeordneten Elemente dieser untergeordneten Steuerelemente, unabhängig von ihren Eigenschafteneinstellungen.

Selectable 1

Validiert untergeordnete Steuerelemente, die ausgewählt werden können.

TabStop 8

Validiert untergeordnete Steuerelemente, für die ein TabStop-Wert festgelegt wurde, was bedeutet, dass der Benutzer mit der Tabstopptaste zum Steuerelement navigieren kann.

Visible 4

Validiert untergeordnete Steuerelemente, deren Visible-Eigenschaft auf true festgelegt ist.

Beispiele

Im folgenden Codebeispiel wird das Validating Ereignis nur für direkte untergeordnete Elemente des Formulars ausgelöst, dessen Enabled Eigenschaft ist true.

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

Hinweise

Standardmäßig ValidateChildren werden alle aktivierten Steuerelemente in einem Container überprüft, z. B. ein Formular. Verwenden Sie diese Enumeration, um die Typen von Steuerelementen einzuschränken, deren Validating Ereignis ausgelöst wird.

Sie können diese aufgezählten Werte mit einem bitweisen OR-Vorgang kombinieren. Das Kombinieren von Parametern mit einem bitweisen OR-Operator führt zu einem logischen AND-Vorgang. Wenn Sie beispielsweise aufrufen ValidateChildren(ValidationConstraints.ImmediateChildren | ValidationConstraints.Enabled) , wird das Validating Ereignis nur für Steuerelemente ausgelöst, die beide unmittelbar untergeordnete Elemente des Containers sind UND aktiviert sind.

Wenn Sie Beim Aufrufen ValidateChildrenvon ImmediateChildren nicht angeben, erfordert die -Methode, dass Sie alle untergeordneten Steuerelemente in der Steuerelementhierarchie überprüfen.

Gilt für:

Produkt Versionen
.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

Weitere Informationen