65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.23/5 (4投票s)

2008年2月23日

CPOL

2分钟阅读

viewsIcon

22616

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 日:初始发布
© . All rights reserved.