以前都是用textbox的KeyPress事件来控制字符输入,今天用看程序的时候,无意中发现textbox有个Validate事件。在MSDN里 面查询了下Validate事件的作用,才发现原来用这个事件可以简化很多过程。最简单的就是控制textbox的字符输入了。MSDN里面对 Validate事件的说明如下:
Validate事件
在焦点转换到一个(第二个)控件之前发生,此时该控件的 CausesValidation 属性值设置为True。
语法
Private Sub object_Validate(KeepFocus As Boolean)
Validate事件语法包含下面几部分:
部分 描述
object 一个对象表达式,其值为“应用于”列表中的一个对象。
KeepFocus 确定控件是否失去焦点的值。KeepFocus设置为True时,控件保持焦点。
说明
Validate 事件和CausesValidation 属性协同工怍,防止控件失去焦点直到满足确定的准则。
重点 只有在即将获得焦点的控件的CausesValidation属性值设置为True时,Validate事件才发生。
如,设置textbox只能输入数字,
Private Sub Text1_Validate(Keepfocus As Boolean)
If Not IsNumeric(Text1.Text) Or Val(Left(Text1.Text, 1)) = 0 Then
Keepfocus = True
MsgBox “请输入有效数字.”, vbCritical, “Error”
End If
End Sub
也 就是说,当你离开textbox的时候,首先触发Validate事件(前提:textbox的CauseValidation要设置成True),执行 if语句,用IsNumeric函数判断textbox.text是否是数字,如果不是数字,textbox keepfocus也就是继续保持焦点。如果不是数字提示”请输入有效数字.”。Val(Left(Text1.Text, 1)) = 0用来判断文本的第一个数字是否是0。
附,MSDN对IsNumeric函数的说明:
IsNumeric 函数
返回 Boolean 值,指出表达式的运算结果是否为数。
语法
IsNumeric(expression)
必要的 expression 参数是一个 Variant,包含数值表达式或字符串表达式。
说明
如果整个 expression 的运算结果为数字,则 IsNumeric 返回 True;否则返回 False。
如果 expression 是日期表达式,则 IsNumeric 返回 False
IsNumeric 函数示例
本示例使用 IsNumeric 函数判断变量的值是否可为数值。
Dim MyVar, MyCheck
MyVar = “53″ ‘ 指定值。
MyCheck = IsNumeric(MyVar) ‘ 返回 True。
MyVar = “459.95″ ‘ 指定值。
MyCheck = IsNumeric(MyVar) ‘ 返回 True。
MyVar = “45 Help” ‘ 指定值。
MyCheck = IsNumeric(MyVar) ‘ 返回 False。
转载文章请注明转载自:ThinkAgain - Let's Blog!

























