有如图所示的窗体。程序执行时先在Text1文本框中输入编号,当焦点试图离开Text1时,程序检查编号的合法性,若编号合法,则焦点可以离开Text1文本框;否则,显示相应错误信息,并自动选中错误的字符,且焦点不能离开Text 1文本框。
合法编号的组成是:前2个字符是大写英文字母,第3个字符是"-",后面是数字字符(至少1个)。下面程序可实现此功能,请填空。
Private Sub Text1_LostFocus()
Dim k%.n%。
n=Len( (13) )
For k=1 To IIf(n>3,n,4)
c=Mid(Text1.Text,k,1)
Select Case k
Case 1.2
If c<"A" Or c>"Z" "Then
MsgBox("第" &k&"个字符必须大写字母!")
SetPosition k:Exit For
End If
Case 3
If c<>"_ "Then
MsgBox"第"&k&"个字符必须是字符""-"""
SetPosition k:Exit For
End If
Case Else
If c<"0" Or c>"9" Then
MsgBox("第"&k&"个字符必须是数字!")
SetPosition k:Exit For
End If
End Select
Next k
End Sub
Private Sub SetPosition(pos As Integer)
Text1.SelStart=pos-1
Text1.SelLength= (14)
Text1. (15)
End Sub
参考答案:SetFocus
解析: 当文本框失去焦点时,触发LostFocus事件,该事件过程的编程思路为:首先用Len()函数求出文本框Text1中的字符个数,通过For循环逐一取出这些字符,利用条件分支语句对取出的字符根据字符位置判断其合法性。当字符不合法时,弹出相应消息框并调用过程SetPosition来选定该字符,使文本框Text1重新获得焦点。由于是逐一判断字符的合法性,故每次出错时选定的字符串长度应为l,获得焦点使用SetFocus方法。