问题 填空题

有如图所示的窗体。程序执行时先在Text1文本框中输入编号,当焦点试图离开Text1时,程序检查编号的合法性,若编号合法,则焦点可以离开Text1文本框;否则显示相应的错误信息,并自动选中错误的字符,且焦点不能离开Text1文本框(如下图所示)。
合法编号的组成是:前2个字符是大写英文字母,第3个字符是“-”,后面是数字字符(至少1个)。下面程序可实现此功能,请填空。



Private Sub Text1_Lostfocus()
Dim k%,n%
n=Len(______)
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.SetStart=pos-1
Text.SelLength=______
Text1.______
End Sub

答案

参考答案:Text1.Text 1 SetFocus

解析: 由于要检查Text1中文本的合法性,即是否满足题中所限制的条件,所以要遍历Text1.Text所有的字符。此空就是为了实现其遍历,而用函数Len(Text1.Text)取得Text1中文本的长度,并赋给n。
文本框的SelStart属性是选择文本的起始位置,SelLength属性是选中的字符数。函数SetPosition()要在文本不合法时调用,要实现自动选中错误字符功能。此空就是选中一个字符。
当文本不合法时,就调用函数SetPosition(),该函数要实现自动选中错误字符且焦点不能离开Text1文本框。此空的SetFocus方法就是将焦点(光标)锁定到指定的文本框中,其一般格式是:[对象].SetFocus。

判断题
名词解释