实例5.23使用控件数组。 在该程序中,用户单击按钮后,则在四个文本框中分别显示“这是文本框1”、“这是文本框2”等。并且,在窗体上还显示当前哪个文本框具有焦点,如图5.73所示。
" f9 [9 V2 r" \- D& H9 f9 U 使用上述任意一种方法在窗体中建立一个包含四个文本框的控件数组所示,且控件数组的名称为Tex.再在窗体上放置一个按钮控件和一个标签控件,如图5.74所示。各对象的属性设置如表5.35所示。
. O" P7 Q" J# R- _' L: z# j- Q; G9 F8 C. o
% T9 x( ~, o$ P* J) C8 |7 y6 T
& k1 k) i% _; E4 i
9 {! G, ?1 ]! ?+ H) I
+ l; s4 z* [1 `' ]+ c 双击【设置】按钮,打开【代码】窗口,编写Comset_Click事件过程如下:
1 O4 c8 @4 Z0 [: L% p/ U Private Sub Comset-Click()
8 A# [: }8 o5 V9 d: o, z For i=0 To 3
; {6 a/ \. t6 M+ h# k6 @7 l Tex(i).Text =“这是文本框”& i+1# O& n' t' _9 Z7 E* @/ `& r
Next1 c0 d+ k, S' g- P9 x: o
End Sub
# x$ @8 j( W7 f% ?+ Y& k4 L/ ?) z 在该段代码中,使用了一个For循环语句,依次为各文本框的Text属性赋值。如果各文本框是独立的,不是一个控件数组,则不能使用for循环语句,只能为每一个文本框各编写一个赋值语句。如果需要对很多文本框的Text属性赋值,则在编写代码时既麻烦又罗嗦,使用控件数组后,就使得程序代码的编写简单明了。( ]0 F2 @: ?$ L; l2 J
注意:在控件数组中,对象不能直接使用空间数组名,例如,不能些出Tex.Text=“这是文本框”,而要写成Tex(0).Text=这是文本框。这与对数组的操作是类似的。
$ |& a. V; ~: c7 v! w 控件数组中的对象共享相同的事件过程,不同的对象通过索引号(Index)来区分,编写控件数组的GotFocus事件过程如下;8 _3 U( m8 R0 B4 s+ w
Private Sub Tex_GotFocus(Index As Intege)
3 X9 v& ~( i8 g) l7 \$ V- b; F& r Select Case Index。
9 y. K3 _5 z% \4 P1 F2 ]+ z0 q1 t Case 0
5 x! K) c/ F D: z7 C1 E LabFocus.Caption=“文本框1具有焦点”. q# O6 l: B- J* I
Case 1
, z1 S4 {5 |: w5 t9 k( \ LabFocus.Caption=“文本框2具有焦点”( o5 _& Y* a2 M
Case 2
. l. p5 D& T- L& O LabFocus.Caption=“文本框3具有焦点”
( ~5 v/ [7 C2 d) W8 C Case 37 X1 Q+ q8 Z7 n( o) r+ P( A6 h, j
LabFocus.Caption=“文本框4具有焦点”
1 @% ~6 E, X0 k! N0 s) \) o End Select# {1 E! A" v& _9 b3 l# F
End Sub$ \$ p7 A+ |! r% M2 [- Z3 T1 d
在该段代码中,使用了Select Case.语句来判断控件数组中的哪一个文本框具有焦点。如果不使用控件数组,则需要为每一个文本框编写一个GotFocus事件过程。 |