.NET Framework 2.0 中的错误提供程序






2.23/5 (4投票s)
Windows Forms 错误提供程序组件用于以不具侵入性的方式向用户显示存在问题。它通常与验证表单上的用户输入或显示数据集中的错误结合使用。
引言
您是否曾经觉得在 Windows Forms 上,不断弹出的无效输入错误消息框很烦人?现在,我们可以使用 .NET 2.0 中的 ErrorProvider
组件类,它允许您在没有消息框的情况下验证表单。相反,错误发生的位置会闪烁一个错误图标。
错误提供程序组件概述
Windows Forms ErrorProvider
组件用于验证表单或控件上的用户输入。它通常与验证表单上的用户输入或显示数据集中的错误结合使用。错误提供程序比在消息框中显示错误消息更好,因为一旦关闭消息框,错误消息将不再可见。此组件会在相关控件(例如 textbox
)旁边显示一个错误图标;当用户将鼠标指针悬停在错误图标上时,会显示一个 ToolTip,显示错误消息字符串。
使用组件
要使用此组件,需要从 工具箱
中拖放 ErrorProvider
组件,或在运行时添加控件。
'' Create an Instance of the Control ErrorProvider at Runtime
Private Num_ErrorProviders As New ErrorProvider()
Private Null_ErrorProviders As New ErrorProvider()
'' textbox
Private WithEvents Num_Textbox As New TextBox
Private WithEvents Null_Textbox As New TextBox
一旦放置或在运行时创建了组件,我们需要验证一个控件。为此,我们将使用两个 textbox
控件,一个用于验证 textbox
的输入是否为数字,另一个用于验证 textbox
是否为空或 null
。
要验证 textbox
,需要使用 ErrorProvider
类的 SetError
方法。
''To set error for the control
Num_ErrorProviders.SetError(Num_Textbox, "Not a numeric value.")
为此,需要使用 textbox
的 validating 事件或 validated 事件。这两者之间的区别在于,validated 事件在 textbox
失去焦点时触发,并且在此时 textbox
才会进行验证。现在让我们看看如何使用它进行验证。
'' Validating the Num_Textbox
Private Sub Num_Textbox_Validating(ByVal Sender As Object, _
ByVal e As System.EventArgs) Handles Num_Textbox.Validating
If Not IsNumeric(Num_Textbox.Text) Then
Num_ErrorProviders.SetError(Num_Textbox, "Not a numeric value.")
Else
' Clear the error.
Num_ErrorProviders.SetError(Num_TextBox, "")
End If
End Sub
'' Validate the Null_Textbox
Private Sub Null_Textbox_Validated(ByVal Sender As Object, _
ByVal e As System.EventArgs) Handles Null_Textbox.Validated
If String.IsNullOrEmpty(Null_Textbox.Text) Then
Null_ErrorProviders.SetError(Null_Textbox, "Textbox is Empty.")
Else
' Clear the error.
Null_ErrorProviders.SetError(Null_TextBox, "")
End If
End Sub
如果执行了任何验证,textbox
旁边会出现一个闪烁的图标。
关注点
您以这种方式使用此控件,可以从用户那里获取有效数据。
历史
- 2008 年 2 月 23 日:初始发布