Control.CausesValidation 属性

定义

获取或设置一个值,该值指示控件是否会引起在任何需要在接收焦点时执行验证的控件上执行验证。

C#
public bool CausesValidation { get; set; }

属性值

如果控件引起在任何需要在接收焦点时执行验证的控件上执行验证,则为 true;否则为 false。 默认值为 true

示例

下面的代码示例使用派生类 TextBox 并验证用户输入的电子邮件地址。 如果电子邮件地址不是标准格式, (包含“@”和“”。) ,验证失败,显示图标 ErrorProvider ,并取消事件。 窗体上的一个按钮的 CausesValidation 属性设置为 false。 单击或设置此按钮的焦点不会触发验证。 此示例要求 TextBox已在窗体上创建 、 ErrorProvider 控件和 Button

C#
public Form1()
{
    InitializeComponent();
    //Set button2 to be non-validating.
    this.button2.CausesValidation = false;
}

private void textBox1_Validating(object sender, 
                System.ComponentModel.CancelEventArgs e)
{
   string errorMsg;
   if(!ValidEmailAddress(textBox1.Text, out errorMsg))
   {
      // Cancel the event and select the text to be corrected by the user.
      e.Cancel = true;
      textBox1.Select(0, textBox1.Text.Length);

      // Set the ErrorProvider error with the text to display. 
      this.errorProvider1.SetError(textBox1, errorMsg);
   }
}

private void textBox1_Validated(object sender, System.EventArgs e)
{
   // If all conditions have been met, clear the ErrorProvider of errors.
   errorProvider1.SetError(textBox1, "");
}
public bool ValidEmailAddress(string emailAddress, out string errorMessage)
{
   // Confirm that the email address string is not empty.
   if(emailAddress.Length == 0)
   {
      errorMessage = "email address is required.";
         return false;
   }

   // Confirm that there is an "@" and a "." in the email address, and in the correct order.
   if(emailAddress.IndexOf("@") > -1)
   {
      if(emailAddress.IndexOf(".", emailAddress.IndexOf("@") ) > emailAddress.IndexOf("@") )
      {
         errorMessage = "";
         return true;
      }
   }
   
   errorMessage = "email address must be valid email address format.\n" +
      "For example 'someone@example.com' ";
      return false;
}

注解

如果 属性 CausesValidation 设置为 falseValidating 则会取消 和 Validated 事件。

对于 CausesValidation 控件(例如“帮助”按钮),属性值通常设置为 false

适用于

产品 版本
.NET Framework 1.1, 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, 10

另请参阅