使用ErrorProviders在Windows窗体的不同选项卡中进行验证

时间:2014-12-04 20:11:21

标签: asp.net winforms validation errorprovider

我正在使用Windows窗体应用程序,并尝试使用errorproviders验证几个文本框,但问题是当我点击选项卡1中的按钮时,所有文本框甚至出现在不同的选项卡上都会得到验证。我希望验证发生在当前选项卡上的文本框中,而不是任何其他选项卡上的任何控件上。我怎样才能做到这一点?请帮忙。以下是与点击事件中的验证相关的代码。

   private void btnCreateUser_Click(object sender, EventArgs e)
    {
          if (this.ValidateChildren(ValidationConstraints.Enabled))
        {
               // Some Code here
        }
    }

以下是用于验证和验证一个文本框事件的代码。我正在其他文本框中使用类似的代码以及其他选项卡上的代码。

      private void txtFirstNm_Validating(object sender, CancelEventArgs e)
    {
        bool cancel = false;
        if (txtFirstNm.Text.Trim().Length == 0)
        {
            cancel = true;
            errorProvider1.SetError(txtFirstNm,"Please enter First Name");
        }
        else
        {
            cancel = false;
            errorProvider1.SetError(txtFirstNm, "");
        }
        e.Cancel = cancel;
    }

    private void txtFirstNm_Validated(object sender, EventArgs e)
    {
        errorProvider1.SetError(txtFirstNm,"");
    }

1 个答案:

答案 0 :(得分:0)

我的问题中给出的场景可以使用下面的代码来处理。我们可以将ValidationConstraint用作Visible,这将确保在Current visible Controls上进行验证。

  private void btnCreateUser_Click(object sender, EventArgs e)
  {
      if (this.ValidateChildren(ValidationConstraints.Visible))
      {
           // Some Code here
      }
  }