Поделиться через


ValidationConstraints Перечисление

Определение

Определяет константы, которые сообщают методу ValidateChildren(ValidationConstraints) о способе проверки дочерних элементов управления, принадлежащих контейнеру.

Это перечисление поддерживает побитовую комбинацию значений его членов.

public enum class ValidationConstraints
[System.Flags]
public enum ValidationConstraints
[<System.Flags>]
type ValidationConstraints = 
Public Enum ValidationConstraints
Наследование
ValidationConstraints
Атрибуты

Поля

Enabled 2

Проверяет дочерние элементы управления, свойство Enabled которых установлено равным true.

ImmediateChildren 16

Проверяет дочерние элементы управления, которые размещены непосредственно в контейнере. Не проверяет дочерние элементы этих дочерних элементов. Например, если имеется форма Form, содержащая настраиваемый элемент управления UserControl, а элемент управления UserControl содержит кнопку Button, тогда использование ImmediateChildren инициирует событие Validating для элемента управления UserControl, но не события Validating для кнопки Button.

None 0

Проверяет все дочерние элементы управления и все дочерние элементы этих дочерних элементов управления независимо от параметров их свойств.

Selectable 1

Проверяет выбираемые дочерние элементы.

TabStop 8

Проверяет дочерние элементы управления, имеющие установленное значение TabStop, которое означает, что пользователь может перемещаться к таким элементам управления, пользуясь клавишей TAB.

Visible 4

Проверяет дочерние элементы управления, свойство Visible которых установлено равным true.

Примеры

В следующем примере кода событие вызывается только Validating для непосредственных дочерних элементов формы, свойство которой Enabled имеет значение 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);
        }
    }
}
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


        Sub SubTextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles SubTextBox1.Validating
            MessageBox.Show("SubTextBox1 Validating!")
        End Sub


        Sub TextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating
            MessageBox.Show("TextBox1 Validating!")
        End Sub


        Sub TextBox2_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox2.Validating
            MessageBox.Show("TextBox2 Validating!")
        End Sub


        Sub TextBox3_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox3.Validating
            MessageBox.Show("TextBox3 Validating!")
        End Sub


        Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles button1.Click
            Me.ValidateChildren((ValidationConstraints.ImmediateChildren Or ValidationConstraints.Enabled))
        End Sub
    End Class
End Namespace 'ValidateChildrenWithConstraints

Комментарии

По умолчанию ValidateChildren проверяет все включенные элементы управления в контейнере, например форму. Используйте это перечисление, чтобы ограничить типы элементов управления, событие которых Validating вызывается.

Эти перечисленные значения можно объединить вместе с побитовой операцией ИЛИ. Объединение параметров с побитовой оператором OR приведет к логической операции AND. Например, вызов ValidateChildren(ValidationConstraints.ImmediateChildren | ValidationConstraints.Enabled) вызовет Validating событие только для элементов управления, которые являются непосредственными дочерними элементами контейнера И включены.

Если при вызове ValidateChildrenне указать ImmediateChildren, методу потребуется проверить все дочерние элементы управления в иерархии элементов управления.

Применяется к

См. также раздел