Практическое руководство. Отображение значков ошибок при проверке введенных в форму данных с помощью компонента ErrorProvider в Windows Forms
Обновлен: Ноябрь 2007
Компонент форм Windows ErrorProvider может использоваться для отображения значков ошибок при вводе пользователем неверных данных. В форме должно быть по крайней мере два элемента управления для перехода между ними и вызова таким образом кода проверки.
Чтобы отобразить значок ошибки при недопустимом значении элемента управления
Добавьте два элемента управления, например текстовых поля, в форме Windows Forms.
Добавьте компонент ErrorProvider в форму.
Выберите первый элемент управления и добавьте код в его обработчик событий 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);
Запустите проект. Введите недопустимые (в этом примере нечисловые) данные в первый элемент управления, затем перейдите ко второму. После отображения значка ошибки установите на нем курсор мыши для просмотра текста ошибки.