如果你经常上网,一定会发现有很多页面特别是申请帐号的页面会有一个验证你输入是否正确的提示,如下图一就是申请QQ的资料填写,在年龄那里验证用户的输入是否符合:
当然,在我们的应用程序中,也可以像上图一样,在用户输入无效数据时,出现一个错误提示的图标。在vb.net中,我们使用 Windows 窗体 ErrorProvider 组件显示错误图标, ErrorProvider 组件在工具栏中显示如下图二:
ErrorProvider 组件是无界面组件,拖放到窗体上后它显示在窗体下方的组件栏中。
它的常用属性如下:
1、BlinkRate 属性:错误图标的闪烁速率。
2、BlinkStyle 属性:指示错误图标的闪烁时间。
3、Icon 属性:设置控件的图标,当为控件设置了错误描述字符串时,该图标显示在控件旁边。
它的常用方法为:
1、GetError 方法:返回指定控件的当前错误描述字符串。
2、SetError 方法:指定控件的错误描述字符串。
3、SetIconAlignment 方法:设置错误图标相对于控件的放置位置。
4、SetIconPadding 方法:设置指定控件和错误图标之间应保留的额外空间量。
我们用得最多的是 SetError 方法。
下面我们就用一个实例来看如何使用该控件
首先往窗体上拖放两个TextBox控件,一个ErrorProvider 组件,界面如下图三所示
在TextBox1控件的控件验证事件中我们验证用户输入是否是数字,要让 ErrorProvider 组件不进行错误提示,我们只需用 SetError 方法对指定控件的错误描述字符为空即可,代码如下所示:
Private Sub TextBox1_Validated(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Validated
If Not IsNumeric(TextBox1.Text) Then
ErrorProvider1.SetError(TextBox1, "你输入的不是数字")
Else
ErrorProvider1.SetError(TextBox1, "")
End If
End Sub
在TextBox2控件的控件验证事件中验证用户输入是否字符串字数是否大于5个,代码如下:
Private Sub TextBox2_Validated(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.Validated
If Len(TextBox2.Text) > 5 Then
ErrorProvider1.SetError(TextBox2, "你输入的字数大于5")
Else
ErrorProvider1.SetError(TextBox2, "")
End If
End Sub
然后在两个控件获得焦点的事件中分别取消显示错误提示:
Private Sub TextBox_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) HandlesTextBox1.GotFocus, TextBox2.GotFocus
ErrorProvider1.SetError(CType(sender, Control), "")
End Sub
运行,当TextBox1失去焦点时,就会验证用户输入的数据,如下图四所示: