如何:使用 Windows 窗体 ErrorProvider 组件显示窗体验证的错误图标
可以使用 Windows 窗体 ErrorProvider 组件在用户输入无效数据时显示错误图标。 窗体上必须至少有两个控件,才能在它们之间按 Tab 键,从而调用验证代码。
在控件的值无效时显示错误图标
向 Windows 窗体中添加两个控件(例如文本框)。
将 ErrorProvider 组件添加到窗体。
选择第一个控件,并将代码添加到其 Validating 事件处理程序。 为了使此代码正常运行,该过程必须连接到事件。 有关详细信息,请参阅如何:在运行时为 Windows 窗体创建事件处理程序。
下面的代码测试用户输入的数据的有效性;如果数据无效,则调用 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 ex) { 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);
运行该项目。 在第一个控件中键入无效(在此示例中为非数字)数据,然后按 Tab 键转到第二个控件。 显示错误图标时,用鼠标指针指向该图标以查看错误文本。