古詩詞大全網 - 成語用法 - 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 With

End Sub

Private Sub Command1_Click()

'當單擊此按鈕時給出用戶幫助信息。

MsgBox _

"Text1 must be set to a date." & VbCrLF & _

"Text2 must be a number less than 10."

End Sub

Private 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 if

End Sub

Private Sub Text2_Validate(KeepFocus As Boolean)

'如果值是壹個大於10的數字,保持焦點。

If Not IsNumeric(Text2.Text) Or Val(Text2.Text) > 10 Then

KeepFocus = True

MsgBox _

"Please insert a number less than or equal to 10.", , "Text2"

End If

End Sub

Validate事件語法包含下面幾部分:

部分 描述

object 壹個對象表達式,其值為“應用於”列表中的壹個對象。

KeepFocus 確定控件是否失去焦點的值。KeepFocus設置為True時,控件保持焦點。

說明

Validate 事件和CausesValidation 屬性協同工怍,防止控件失去焦點直到滿足確定的準則。

重點 只有在即將獲得焦點的控件的CausesValidation屬性值設置為True時,Validate事件才發生。