İngilizce dilinde oku

Aracılığıyla paylaş


AutoValidate Sabit listesi

Tanım

Bir denetimin kullanıcı giriş odağını kaybettiğinde verilerini nasıl doğrulayacaklarını belirler.

C#
public enum AutoValidate
Devralma
AutoValidate

Alanlar

Name Değer Description
Disable 0

Örtük doğrulama gerçekleşmez. Bu değerin ayarlanması veya ValidateChildren()için açık çağrıları Validate() engellemez.

EnableAllowFocusChange 2

Örtük doğrulama gerçekleşir, ancak doğrulama başarısız olursa odak yine de yeni denetime geçer. Doğrulama başarısız olursa olay Validated tetiklenmez.

EnablePreventFocusChange 1

Örtük doğrulama, denetim odağı kaybettiğinde gerçekleşir.

Inherit -1

Denetim, davranışını kapsayıcısından (form veya başka bir denetim gibi) devralır AutoValidate . Kapsayıcı denetimi yoksa, varsayılan olarak EnablePreventFocusChangeolur.

Örnekler

Aşağıdaki kod örneği, bir form ve içerdiği tüm denetimler için örtük doğrulamayı kapatır ve bunun yerine fare düğmesine tıklandığında formun tüm alt öğelerinin doğrulamasını el ile gerçekleştirir.

C#
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Drawing;
using System.Text;

namespace TestValidation
{
    class Form1 : Form
    {
        private static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.Run(new Form1());
        }

        private TextBox firstNameBox, lastNameBox;
        private Button validateButton;
        private FlowLayoutPanel flowLayout1;

        private Form1()
        {
            this.Load += new EventHandler(Form1_Load);
        }

        void Form1_Load(object sender, EventArgs e)
        {
            // Turn off validation when a control loses focus. This will be inherited by child
            // controls on the form, enabling us to validate the entire form when the 
            // button is clicked instead of one control at a time.
            this.AutoValidate = AutoValidate.Disable;

            flowLayout1 = new FlowLayoutPanel();
            flowLayout1.Dock = DockStyle.Fill;
            flowLayout1.Name = "flowLayout1";

            firstNameBox = new TextBox();
            firstNameBox.Name = "firstNameBox";
            firstNameBox.Size = new Size(75, firstNameBox.Size.Height);
            firstNameBox.CausesValidation = true;
            firstNameBox.Validating += new System.ComponentModel.CancelEventHandler(firstNameBox_Validating);
            flowLayout1.Controls.Add(firstNameBox);

            lastNameBox = new TextBox();
            lastNameBox.Name = "lastNameBox";
            lastNameBox.Size = new Size(75, lastNameBox.Size.Height);
            lastNameBox.CausesValidation = true;
            lastNameBox.Validating += new System.ComponentModel.CancelEventHandler(lastNameBox_Validating);
            flowLayout1.Controls.Add(lastNameBox);

            validateButton = new Button();
            validateButton.Text = "Validate";
            // validateButton.Location = new Point(170, 10);
            validateButton.Size = new Size(75, validateButton.Size.Height);
            validateButton.Click += new EventHandler(validateButton_Click);
            flowLayout1.Controls.Add(validateButton);

            this.Controls.Add(flowLayout1);

            this.Text = "Test Validation";
        }

        void firstNameBox_Validating(object sender, System.ComponentModel.CancelEventArgs e)
        {
            if (firstNameBox.Text.Length == 0)
            {
                e.Cancel = true;
            }
            else
            {
                e.Cancel = false;
            }
        }

        void lastNameBox_Validating(object sender, System.ComponentModel.CancelEventArgs e)
        {
            e.Cancel = false;
        }

        void validateButton_Click(object sender, EventArgs e)
        {
            if (this.ValidateChildren())
            {
                MessageBox.Show("Validation succeeded!");
            }
            else
            {
                MessageBox.Show("Validation failed.");
            }
        }
    }
}

Açıklamalar

Kullanıcı bir Windows Forms denetiminin odağını kapatırsa, denetim verilerinin nasıl doğrulanacağını belirlemek için kullanırAutoValidate. Uygulama geliştiricisi veya ValidateChildreniçin açık bir çağrı Validate yapmak zorunda kalmadan gerçekleştiğinden, bu tür doğrulama örtük doğrulama olarak adlandırılır.

Bu değere karşılık gelen özellik, denetimin türüne göre farklı varsayılanlara sahip olacaktır. Daha fazla bilgi için bkz. Windows Forms'da Kullanıcı Girişi Doğrulaması.

Şunlara uygulanır

Ürün Sürümler
.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

Ayrıca bkz.