ValidationConstraints ValidationConstraints ValidationConstraints ValidationConstraints Enum

定義

コンテナーの子コントロールの検証方法を ValidateChildren(ValidationConstraints) に通知する定数を定義します。Defines constants that inform ValidateChildren(ValidationConstraints) about how it should validate a container's child controls.

この列挙型には FlagsAttribute 属性があり、メンバー値ではビットごとの組み合わせを使用できます。

public enum class ValidationConstraints
[System.Flags]
public enum ValidationConstraints
type ValidationConstraints = 
Public Enum ValidationConstraints
継承
ValidationConstraintsValidationConstraintsValidationConstraintsValidationConstraints
属性

フィールド

Enabled Enabled Enabled Enabled 2

Enabled プロパティが true に設定されている子コントロールを検証します。Validates child controls whose Enabled property is set to true.

ImmediateChildren ImmediateChildren ImmediateChildren ImmediateChildren 16

コンテナー内に直接ホストされている子コントロールを検証します。Validates child controls that are directly hosted within the container. これらの子コントロールの子は検証されません。Does not validate any of the children of these children. たとえば、カスタムの Form を含む UserControl があり、その UserControlButton が含まれている場合、ImmediateChildren を使用すると、ValidatingUserControl イベントは発生しますが、ValidatingButton イベントは発生しません。For example, if you have a Form that contains a custom UserControl, and the UserControl contains a Button, using ImmediateChildren will cause the Validating event of the UserControl to occur, but not the Validating event of the Button.

None None None None 0

プロパティの設定にかかわらず、すべての子コントロールと、その子コントロールのすべての子を検証します。Validates all child controls, and all children of these child controls, regardless of their property settings.

Selectable Selectable Selectable Selectable 1

選択できる子コントロールを検証します。Validates child controls that can be selected.

TabStop TabStop TabStop TabStop 8

TabStop の値が設定されている (つまりユーザーが Tab キーを使用して移動できる) 子コントロールを検証します。Validates child controls that have a TabStop value set, which means that the user can navigate to the control using the TAB key.

Visible Visible Visible Visible 4

Visible プロパティが true に設定されている子コントロールを検証します。Validates child controls whose Visible property is set to true.

次のコード例と、のみ、Validatingイベントを持つフォームの直下の子に対して発生しますEnabledプロパティはtrueします。The following code example will only cause the Validating event to be raised for immediate children of the form whose Enabled property is 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 '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

注釈

既定では、ValidateChildrenフォームなどのコンテナー内のすべての有効なコントロールを検証します。By default, ValidateChildren will validate all enabled controls in a container, such as a form. この列挙体を使用して、コントロールの種類を制限するがValidatingイベントが発生します。Use this enumeration to restrict the types of controls whose Validating event is raised.

ビットごとの OR 演算と共にこれらの列挙値を組み合わせることができます。You can combine these enumerated values together with a bitwise OR operation. ビットごとの OR 演算子のパラメーターを組み合わせると、論理 AND 演算が発生します。Combining parameters with a bitwise OR operator will result in a logical AND operation. たとえば、呼び出しValidateChildren(ValidationConstraints.ImmediateChildren | ValidationConstraints.Enabled)のみを発生させる、Validatingはコンテナーの両方の直下の子が有効になっているコントロールのイベント。For example, calling ValidateChildren(ValidationConstraints.ImmediateChildren | ValidationConstraints.Enabled) will only raise the Validating event on controls that are both immediate children of the container AND are enabled.

呼び出すときに、ImmediateChildren を指定しない場合ValidateChildrenメソッド、コントロール階層内のすべての子コントロールを検証することが必要になります。If you do not specify ImmediateChildren when you call ValidateChildren, the method will require that you validate all child controls in the control hierarchy.

適用対象

こちらもご覧ください