Проверка в разных вкладках формы Windows с использованием ErrorProviders

Я работаю с приложением Windows Forms и пытаюсь проверить несколько текстовых полей с помощью провайдеров ошибок, но проблема заключается в том, что, когда я нажимаю кнопку, присутствующую на вкладке 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 ответ

Решение

Сценарий, который приведен в моем вопросе, может быть обработан с помощью приведенного ниже кода. Мы можем использовать ValidationConstraint как Visible, и это обеспечит проверку на текущих видимых элементах управления.

  private void btnCreateUser_Click(object sender, EventArgs e)
  {
      if (this.ValidateChildren(ValidationConstraints.Visible))
      {
           // Some Code here
      }
  }
Другие вопросы по тегам