a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 44|回复: 1

[Visual Basic] 2011年度计算机等级考试二级VB复习指导(46)

[复制链接]
发表于 2012-7-31 22:10:12 | 显示全部楼层 |阅读模式
  5.12 控件数组
8 [, i& d9 H/ z8 z( u  第3章介绍了数组的结构,在VB中,用户还可以建立控件数组。控件数组是指相同类型的一组控件,它们具有同一个控件名称,各控件通过索引号来区分。控件数组中的对象共享相同的事件过程,如果一个窗体中有多个相同类型的控件,并且有类似的操作,使用控件数组会使程序简化,便于程序的设计与维护。
& w$ u5 W  r2 m' y  l3 c  建立控件数组的方法有两种,一种方法是通过【属性】窗口设置“名称”属性,另一种方法是通过复制与粘贴操作。" _* S0 m2 }2 P7 q' u( P& C- O
  首先把要建立为控件数组的同一类型控件放置到窗体中,然后在【属性】窗口中将它们的“名称”属性设置为相同的。例如,将第一个控件的“名称”属性设置为Tex,将第二个控件的“名称”属性也设置为Tex时,系统会弹出消息框,询问用户是否建立控件数组,单击【是】按钮即可创建一个控件数组。再将其他控件的“名称”属性设置为Tex时,系统不再弹出消息框,而是自动将它们设置为控件数组的成员。, V+ ^- o! L; R8 V
  注意:控件数组中的控件必须是同一类型的,例如,都是文本框拉件或都是按钮控件。如果用户将一个其他类型担件的“名称”属性设置为控件数组的名称,则系统弹出提示框,提示控件类型不符的消息框。
+ x5 `$ Z2 w& Q! O: Y& Q  数组控件的第一个元素的索引号(Index)为0,第二个为1,依次类推。例如,将窗体中的四个文本框建立一个控件数组,从图5.72所示的【属性】窗口中可以看出,控件数组名为Tex,索引号分别为0、1、2和3。9 }* o6 x/ ?: J9 l1 D
  这样创建的控件数组,各控件的索引号是系统自动分配的,用户也可以通过更改控件的Index属性来自行设置控件的索引号。) o3 D- o' _& e
" ^+ o2 V, n8 P$ b
  
3 O# J2 S: H# u) o  通过在窗体上复制与粘贴控件,也可以建立起控件数组。在窗体上选中一个要创建为控件数组的控件,单击【复制】按钮,再单击【粘贴】按钮,则系统也会弹出如图5.73所示的提示创建控件数组的消息框,单击【是】按钮即可建立控件数组。再次复制控件,系统不再弹出消息框,而是自动将它们设置为控件数组的成员。% c6 M9 i3 O$ Y! o9 ~
  下面通过一个实例来说明使用控件数组的方法以及好处。
回复

使用道具 举报

 楼主| 发表于 2012-7-31 22:10:13 | 显示全部楼层

2011年度计算机等级考试二级VB复习指导(46)

实例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事件过程。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-18 16:18 , Processed in 0.405505 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表