vb中文本框的validate事件怎么用?

vb中文本框的validate事件怎么用?

Validate事件在焦点转换到一个(第二个)控件之前发生,此时该控件的 CausesValidation 属性值设置为True。语法Private Sub object_Validate(KeepFocus As Boolean)Validate事件、 CausesValidation属性示例该示例使用三个控件来示范Validate 事件和CausesValidation 属性的使用。在缺省情况下,两个TextBox 控件的CausesValidatio n属性设置为 True,这样当您想把焦点从一个TextBox转换到另一个时,Validate 事件发生。如果 Text1没有包含日期或 Text2没有包含一个大于10的数字,焦点的转换将被阻止。由于 Command1控件的CausesValidation 属性设置为 False,因此您无论何时都可以单击Help 按钮。要试验该示例,在窗体中放置一个CommandButton 和两个TextBox 控件,将代码粘接到窗体的“声明”部分并运行此工程。按Tab 键尝试转换焦点。Private Sub Form_Load() '设置按钮的CausesValidation属性为False。当用户 '单击按钮时,Validate事件不发生。 '设置按钮的Caption属性为“帮助”。 With Command1 .CausesValidation = False .Caption = "Help" End With Show With Text1 '选择Text1的文本并为它设置焦点。 .SelLength = Len(Text1.Text) .SetFocus End WithEnd SubPrivate Sub Command1_Click() '当单击此按钮时给出用户帮助信息。 MsgBox _ "Text1 must be set to a date." & VbCrLF & _ "Text2 must be a number less than 10."End SubPrivate Sub Text1_Validate(KeepFocus As Boolean) '如果值不是一个日期,则保持焦点,除非用户 '单击Help。 If Not IsDate(Text1.Text) Then KeepFocus = True MsgBox "Please insert a date in this field.", , "Text1" End ifEnd Sub Private Sub Text2_Validate(KeepFocus As Boolean) '如果值是一个大于10的数字,保持焦点。 If Not IsNumeric(Text2.Text) Or Val(Text2.Text) > 10 Then KeepFocus = TrueMsgBox _"Please insert a number less than or equal to 10.", , "Text2" End IfEnd SubValidate事件语法包含下面几部分:部分 描述 object 一个对象表达式,其值为“应用于”列表中的一个对象。 KeepFocus 确定控件是否失去焦点的值。KeepFocus设置为True时,控件保持焦点。 说明Validate 事件和CausesValidation 属性协同工怍,防止控件失去焦点直到满足确定的准则。重点 只有在即将获得焦点的控件的CausesValidation属性值设置为True时,Validate事件才发生。