Поделиться через


Практическое руководство. Отображение значков ошибок при проверке введенных в форму данных с помощью компонента ErrorProvider в Windows Forms

Обновлен: Ноябрь 2007

Компонент форм Windows ErrorProvider может использоваться для отображения значков ошибок при вводе пользователем неверных данных. В форме должно быть по крайней мере два элемента управления для перехода между ними и вызова таким образом кода проверки.

Чтобы отобразить значок ошибки при недопустимом значении элемента управления

  1. Добавьте два элемента управления, например текстовых поля, в форме Windows Forms.

  2. Добавьте компонент ErrorProvider в форму.

  3. Выберите первый элемент управления и добавьте код в его обработчик событий Validating. Для правильного выполнения этого кода процедура должна быть связана с событием. Дополнительные сведения см. в разделе Практическое руководство. Создание обработчиков событий для Windows Forms во время выполнения.

    Следующий код проверяет допустимость данных, введенных пользователем, и в том случае, если данные неверны, вызывается метод SetError. Первый аргумент метода SetError указывает, рядом с каким элементом управления расположить значок. Второй аргумент определяет отображаемый текст ошибки.

    Private Sub TextBox1_Validating(ByVal Sender As Object, _
       ByVal e As System.ComponentModel.CancelEventArgs) Handles _
       TextBox1.Validating
          If Not IsNumeric(TextBox1.Text) Then
             ErrorProvider1.SetError(TextBox1, "Not a numeric value.")
          Else
             ' Clear the error.
             ErrorProvider1.SetError(TextBox1, "")
          End If
    End Sub
    
    protected void textBox1_Validating (object sender,
       System.ComponentModel.CancelEventArgs e)
    {
       try
       {
          int x = Int32.Parse(textBox1.Text);
          errorProvider1.SetError(textBox1, "");
       }
       catch (Exception e)
       {
          errorProvider1.SetError(textBox1, "Not an integer value.");
       }
    }
    
    protected void textBox1_Validating(Object sender, CancelEventArgs e) 
    {
       try 
       {
          int x = Int32.Parse(textBox1.get_Text());
          errorProvider1.SetError(textBox1, "");
       }
       catch(Exception exp)
       {
          errorProvider1.SetError(textBox1, "Not an integer value.");
       }
    }
    
    private:
       System::Void textBox1_Validating(System::Object ^  sender,
          System::ComponentModel::CancelEventArgs ^  e)
       {
          try
          {
             int x = Int32::Parse(textBox1->Text);
             errorProvider1->SetError(textBox1, "");
          }
          catch (System::Exception ^ ex)
          {
             errorProvider1->SetError(textBox1, "Not an integer value.");
          }
       }
    

    (Visual C#, Visual C++) Добавьте в конструктор формы следующий код, чтобы зарегистрировать обработчик событий.

    this.textBox1.Validating += new
    System.ComponentModel.CancelEventHandler(this.textBox1_Validating);
    
    this->textBox1->Validating += gcnew
       System::ComponentModel::CancelEventHandler
       (this, &Form1::textBox1_Validating);
    
  4. Запустите проект. Введите недопустимые (в этом примере нечисловые) данные в первый элемент управления, затем перейдите ко второму. После отображения значка ошибки установите на нем курсор мыши для просмотра текста ошибки.

См. также

Задачи

Практическое руководство. Индикация ошибок данных, содержащихся в объекте DataSet, с помощью компонента ErrorProvider в Windows Forms

Ссылки

SetError

Общие сведения о компоненте ErrorProvider (Windows Forms)