vb数组题型分析

vb数组题型分析
vb数组题型分析

※数组题型分析

29. 以下有关数组的说明中,错误的是___29___。

(A)根据数组说明的方式,可将数组分为动态数组和静态数组

(B)在过程中,不能用Private语句定义数组

(C)利用ReDim语句重新定维时,不得改变已经定义说明过的数组的数据类型

(D)数组重新定维后,原有的数组元素内容将不予保留

答案:D

分析:要保留数组元素原有的内容用Preserve语句。

26.下面有关数组处理的叙述中,不正确的是26。

①在过程中用ReDim语句定义的动态数组,其下标的上下界可为赋了值的变量

②在过程中,可以使用Dim、Private和Static语句定义数组

③用ReDim语句重新定义动态数组时,不得改变该数组的数据类型

④可用Public语句在窗体模块的通用说明处定义一个全局数组

(A)①②③④(B)①③④(C)①②③(D)②④

答案:D

分析:在过程中不能用Private定义数组;Public用在标准模块中定义数组。

31. 名为sort的Sub子过程的形式参数为一数组,以下的定义语句中正确的是___31___。

(A)Private Sub sort(A() As Integer)

(B)Private Sub sort(A(10) As Integer)

(C)Private Sub sort(ByVal A() As Integer)

(D)Private Sub sort(A(,) As Integer)

答案:A

分析:数组参数必须为ByRef方式(传地址方式)传送。

27. 下列关于数组的叙述中,错误的是___27___。

(A)在过程中可以用Dim语句对形参数组进行说明

(B)数组是同类变量的一个有序的集合

(C)数组元素可以是控件

(C)数组在使用之前,必须先用数组说明语句进行说明

答案:A

分析:形参中不使用Dim语句说明变量和数组。

31. 某过程的说明语句中,正确的数组说明语句是___31___。

Const N As Integer=4

Dim L As Integer

①Dim X(L) As Integer

②Dim A(K) As Integer

Const K As Integer=3

③Dim B(N) As Integer

④Dim Y(2000 to 2008) As Integer

(A)①②④(B)①③④(C)③④(D)②③

答案:C

分析:在定义数组时,每一维的元素个数必须是常数,不能是变量或表达式。

(27)下列语句中的[27]语句可以用来正确地声明一个动态数组。

(A)Private A(n) As Integer(B)Dim A() As Integer

(C)Dim A(,) As Integer(D)Dim A(1 to n)

答案:B

分析:给数组附以一个空维数表,这样就将数组声明为动态数组。

25.在窗体的通用声明处有语句Dim A() As Single,以下在某事件过程中重定义此数组的一组正确语句是:25。

(A) ReDim A(3,3) (B) ReDim A(3,3)

ReDim A(4,4) As Integer ReDim Preserve A(4,4)

(C) ReDim A(3,3) (D) ReDim A(3,3)

ReDim A(3,3) As Integer ReDim Preserve A(3,4)

答案:D

分析:ReDim语句在用Preserve 关键字时,只能改变多维数组中最后一维的上界;如果改变了其它维或最后一维的下界,那么运行时就会出错。

28.定义两个过程Private Sub1(St()As String)和Private Sub2(Ch()As String*6),在调用过程中用Dim S(3) As String*6,A(3) As String定义了两个字符串数

组。下面调用语句中正确的有28。

①Call Sub1(S) ②Call Sub1(A) ③Call Sub2(A) ④Call Sub2(S)

(A)①②(B)①③(C)②③(D)②④

答案:D

分析:实参和形参的类型要对应。

27.以下有关控件数组的说法中错误的是_(27)_。

(A)控件数组由一组具有共同名称和相同类型的控件组成

(B)控件数组中的每一个控件共享同样的事件过程

(C)控件数组中的每个元素的下标由控件的Index属性指定

(D)同一控件数组中的元素只能有相同的属性设置值

答案:D

分析:

27.下列有关数组的说法中,不正确的是。

(A)在窗体模块中不可以定义全局数组

(B)可以使用Erase语句释放所有数组所占据的存储空间

(C)语句Dim X(3.6+2) As Integer定义了一个维上界是6的一维的整形数组

(D)形参数组的类型可以是定长字符串类型

答案:B

分析:使用Erase语句重新初始化固定大小的数组中的元素,以及释放动态数组存储空间。

29.下面有关数组的说法中,错误的是。

A)数组必须先定义后使用

B)数组形参可以是定长字符串类型

C)Erase语句的作用是对已定义数组的值重新初始化

D)定义数组时,数组维界值可以不是整数

解析:Erase语句重新初始化大小固定的数组的元素,以及释放动态数组的存储空间。答案:C

28. 以下有关数组的说法中,正确的是_____。

A.数组是有序变量的集合,序列中的变量类型可以不同

B.数组下标用以确定数组元素在数组中的位置,下标取值只能是0或1

C.在一定条件下动态数组可以反复改变其维数与大小

D.固定大小数组也可以使用ReDim语句改变其大小

答案:C

分析:固定大小数组不能使用ReDim语句改变其大小。

28.下面有关数组的说法中,是错误的。

A) 在模块中由于未使用Option Explicit语句,所以数组不用先定义就可以使用,只不过是Variant类型

B) 过程定义中,形参数组可以是定长字符串类型

C) Erase语句的作用是对固定大小数组的值重新初始化或收回分配给动态数组的存储空间

D) 定义数组时,数组维界值可以不是整数

答案:C

24.以下说法不正确的是24 。

A) 使用不带关键字Preserve的ReDim语句可以重新定义数组的维数

B) 使用不带关键字Preserve的ReDim语句可以改变数组各维的上、下界

C) 使用不带关键字Preserve的ReDim语句可以改变数组的数据类型

D) 使用不带关键字Preserve的ReDim语句可以对数组中的所有元素进行初始化

答案:C

27. 以下对数组参数的说明中,错误的是27 。

A) 在过程中可以用Dim语句对形参数组进行声明

B) 形参数组只能按地址传递

C) 实参为动态数组时,可用ReDim 语句改变对应形参数组的维界

D) 只需把要传递的数组名作为实参,即可调用过程

答案:A

24.以下有关数组参数的说明中正确的是24 。

A)在过程中也可用Dim语句对形参数组进行说明

B)动态数组作为实参时,可用ReDim语句在过程中改变对应形参数组的维界

C)调用过程时,数组名不能作为实参

D)数组可以按地址传递也可以按值传递

答案:B

30.下面有关数组的说法中,正确的是30 。

A) 数组的维下界不可以是负数

B) 模块通用声明处有Option Base 1,则模块中数组定义语句Dim A(0 To 5) 会与之冲突

C) 模块通用声明处有Option Base 1,模块中Dim A(0 To 5),则A数组第一维维下界为0

D) 模块通用声明处有Option Base 1,模块中Dim A(0 To 5),则A数组第一维维下界仍为1 答案:C

解析:以模块中Dim的定义为优先。

25.下面有关数组处理的叙述中,正确的是________。

A)在过程中使用ReDim语句可以改变动态数组的数据类型

B)在过程中,可以使用Dim、Private和Static语句来定义数组

C)用ReDim语句重新定义动态数组时,可以改变数组的大小,但不能改变数组的维数

D)不可以用Public语句在窗体模块的通用处说明一个全局数组

答案:D

25. 下列有关数组的叙述中,不正确的是(25)。

①在过程中使用ReDim语句定义的动态数组,其下标的上下界可以是变量

②数组作为形式参数时,传递的是每一个数组元素的值

③在窗体模块的通用说明处可以使用Public说明一个全局数组

④数组定义语句中可以用负数或小数来指定某一维的维下界或维上界的值

A)②③B)①③④C)①②③④D)③④

答案:A

27. 下列有关控件数组的说法中,错误的是(27)。

A)控件数组由一组具有相同名称和相同类型的控件组成,不同类型的控件无法组成控件数组

B)控件数组中的所有控件不得具有各自不同的属性设置值

C)控件数组中的所有控件共享同一个事件过程

D)控件数组中每个元素的下标由控件的Index属性指定

答案:B

25.以下说法中,错误的是25 。

A)使用缺省Preserve关键字的ReDim语句可以改变数组的维数和大小

B)ReDim语句只能出现在过程中

C)使用ReDim语句重新定义的动态数组,只能比原数组大

D)使用ReDim语句可以对动态数组的所有元素进行初始化

答案:C

4. 执行下面程序后,A(1,3)的值是___(4)___,A(2,2)的值是___(5)___,A(3,1)的值是

答案:

分析:

9. 本程序的功能是在二维数组中查找鞍点元素,即该元素在所在行中为最大,且在所在列中为最小。在一个数组中可能存在,也可能不存在这样的元素。数组各元素的值从文件data.txt 中读取。

Private Sub Form_Click()

Dim a(3, 3) As Integer, i As Integer, j As Integer

Dim maxvr As Integer, col As Integer, flg As Integer

Open "data.txt" For Input As #1

For i = 1 To 3 '从文件中读入数据,并打印出来

For j = 1 To 3

Input #1, a(i, j)

Print a(i, j);

Next j

Print

Next i

For i = 1 To 3

maxvr =a(i, 1)

col = 1

For j = 2 To 3

If maxvr < a(i, j) Then

maxvr =a(i, j)

col = j

End If

Next j

For j = 1 To 3

If maxvr>a(j,col) Then Exit For

Next j

If j > 3 Then

Print "a("; i; ","; col; ")="; a(i, col)

flg = 1

End If

If Then Print "鞍点元素不存在" ‘flg = 0

Next i

End Sub

7. 下面程序的功能是当循环次数一定时,统计生成互不相同的1~00之间的随机整数的个数。Option Explicit

Option Base 1

Private Sub Form_Click()

Dim Data() As Integer,I As Integer,Idx As Integer

Dim N As Integer,Temp As Integer,Flg As Boolean

N=InputBox("输入循环次数")

ReDim Data(1)

Idx=1

Data(1)=Int(100*Rnd(1))+1

For I=1 To N

Temp=Int(100*Rnd(1))+1

______ ‘Flg=False

Call Compare(Data,Temp,Flg)

If Flg=True Then

Idx=Idx+1

______ ‘ReDim PreServe Data(Idx)

Data(Idx)=Temp

End If

Next I

Print "生成";Idx;"个不相同的整数"

For I=1 To Idx

Print Data(I);

If I Mod 10=0 Then Print

Next I

End Sub

Private Sub Compare(Arry() As Integer, K As Integer, Logic As Boolean) Dim Ub As Integer,I As Integer

______ ‘Ub=UBound(arry)

For I=1 To Ub

If Arry(I)=K Then

______

End If

Next I

Logic=True

End Sub

答案:

分析:

5.下面的事件过程执行结束后,A(2)

Option Explicit

Option Base 1

Private Sub Command1_Click()

Dim A(10) As Integer

Dim i As Integer, j As Integer, K As Integer

For i = 1 To 10

A(i)= 1

Next i

i = 2

Do While i <= 10

If A(i)= 1 Then

j = i + i

For K = j To 10 Step i

A(K)= 0

Next K

End If

i = i + 1

Loop

For K = 2 To 10

If A(K)= 1 Then A(K)= K

Next K

End Sub

答案:A(2)是2,A(3)是3,A(7)是7

6.本程序的功能是:产生10个个位数互不相同的三位随机正整数,并存放到下标与其个位数相同的数组元素中。例如,395应存到a(5)中。

Option Explicit

Private Sub Form_Click()

Dim a(9) As Integer,x As Integer,k As Integer,i As Integer

Randomize

Do While i< = 9

x = Int(Rnd * 900+100)

(12)‘k = x Mod 10

If a(k)= 0 Then

a(k)= x

(13)‘i = i + 1

End If

Loop

For j = 0 To 9

Print a(i);

Next i

End Sub

.执行下面的程序,单击窗体,则在窗体上显示的第一行是(2),第二行是(3)

分析:过程前部分为给数组a赋初值,后部分为输出。但要注意的是,内循环的初值为外循环的循环变量j。

4.执行下面程序,单击窗体,在立即窗口上显示的第一行是(7),第二行是(8)。

(14)8

(15)6

分析:While型循环的条件为假时离开循环,两个Do循环的条件p <= Count和Idx <> Count 中三个变量都在循环中发生变化,所在分析时要特别小心。

4.执行下面程序,从键盘输入3,程序运行结束后,A(1,1)的值是(7),A(2,2)的值是(8);A(2,3)的值是(9)。

Private Sub Form_Click()

Dim I As Integer, J As Integer, K As Integer

Dim A() As Integer, N As Integer

N = InputBox("输入N")

ReDim A(N, N)

For I = 1 To N

For J = 1 To N

K = K + 1

A(I, J)= K + 10

Next J

Next I

Call Sub1(A, N)

End Sub

Private Sub Sub1(A() As Integer, N As Integer)

Dim I As Integer, J As Integer

Dim T As Integer, K As Integer

K = N + 1

For I = 1 To Int(N / 2)

For J = I To N - I

T = A(I, J)

A(I, J)= A(K - J, I)

答案:

(7)17

(8)15

(9)12

分析:过程Form_Click的功能主要是给数组A赋初值,过程Sub1的功能是将数组元素按一定的规律进行交换,其中用到了临时变量T。

5.执行下面程序,单击命令按钮Command1 后,A(1,3)值是【12】,A(2,2)值是

答案:【12】19

答案:【13】15

答案:【14】14

6.执行下面程序,窗体上显示的第二行是,单击命令按钮Cmd1,则窗体上显示的第四行

答案:6.4 5 6 1 6 78 5 2 3 4 9

5.执行下面的程序,单击按钮Command1,A(1,1)的值是_____7_____,A(1,4)的值是

_____1_____,A(4,1)的值是____16_____,A(4,4)的值是_____10_____。

Option Base 1

Private Sub Command1_Click()

Dim a() As Integer, i As Integer, j As Integer

Dim k As Integer, n As Integer

n = 4

ReDim a(n, n)

i = 1: j = n: a(i, j)= 1

For k = 2 To n * n

If i + 1 > n Then

i = n - j + 2: j = 1

ElseIf i + 1 <= n And j + 1 > n Then

j = j - i: i = 1

Else

i = i + 1: j = j + 1

End If

a(i, j)= k

Next k

For i = 1 To n

For j = 1 To n

Print a(i, j);

Next j

Print

Next i

End Sub

10.从键盘上输入10个整数,用冒泡排序(Bubble Sort)法对这10个数从小到大排序。

分析:

1. 有Dim a() 的形式,在程序代码中一定要有Preserve语句;

2.

枯藤老树昏鸦,小桥流水人家,古道西风瘦马。夕阳西下,断肠人在天涯。

VB .NET中控件数组的实现

https://www.360docs.net/doc/5311345298.html,中控件数组的实现 摘要:VB编程时,当要处理一组相同类型的控件的同一事件过程时,我们可以引入控件数组这一概念。如进行计算器程序编写时,可创建十个数字按钮的控件数组,共享同一事件过程。VB6升级到https://www.360docs.net/doc/5311345298.html,后,VB6控件数组的创建方法在.NET中不可用,本文总结了几种https://www.360docs.net/doc/5311345298.html,中使用控件数组的方法。 关键词:https://www.360docs.net/doc/5311345298.html,控件数组事件过程程序代码 一、关于控件数组 熟悉VB6编程的,对控件数组这一概念应该非常熟悉,它是VB6中的一项简单而非常实用的技术,是指具有相同名称的同类型的控件,共享同一事件。它的最大好处是:简化编程。但当我们把这一用法沿用到https://www.360docs.net/doc/5311345298.html,中来时,却发现无法实现。虽然https://www.360docs.net/doc/5311345298.html,中没有VB6中实现控件数组的方法,但在https://www.360docs.net/doc/5311345298.html,中控件数组的运用更加灵活了。 https://www.360docs.net/doc/5311345298.html,中,控件数组的创建不再是在设计时简单地将同类型的各个控件的Name属性值设置成同一名称就可以了,https://www.360docs.net/doc/5311345298.html,中,不公能够创建同类型的相同事件处理过程,还能够创建属于不同类型但共享相同事件的控件组。 二、https://www.360docs.net/doc/5311345298.html,中控件数组的实现 要在https://www.360docs.net/doc/5311345298.html,中实现控件数组这一机制,我们需要通过编写代码来完成,下面来介绍几种的方法,大家可以根据程序的需要进行选择。 1、使用Handles子句。 先将控件数组中各控件对象依次添加到窗体,然后创建其中一个对象的事件过程(执行部分先不写),再把其它对象的这一事件依次添加在后面,各事件过程名之间用逗号分隔开来。在事件过程的执行部分,如果需要引用这些对象,则要先给这些对象创建一个相同的名称。当要引用对象时,不再使用它们的Name属性值,而是新创建的名称。示例代码如下(部分内容省略): Label1_Click(ByVal sender…)Handles Label1.C lick,Label2.Click,Label3.Click Dim lbl As Label = CType(sender, Label) 当中,创建的是Label1的Click事件,在其后面,添加了Label2及Label3的Click 事件。事件过程中,通过一条Dim语句,定义三个标签具有相同的名称lbl,在下面的代码中,要设置或获取其中某一个标签的某个属性值时,直接使用名称lbl即可。这种方法实现起来最方便简单,以上实例中要求控件数组中控件类型相同,通过此方法,也可实现不同类型同一事件处理程序的共享,如具有同一功能的菜单项和工

vb控件数组的习题及答案

vb控件数组的习题及答案

电子教室学生注册时姓名文本框部分请输入:如:1411111111李四学号+姓名,中间不加空格) 实验准备: 请同学们删除d:\ex21 文件夹里面的内容 如果没有ex21文件夹,请在d:\ 下新建 ex21 文件夹 1、打开D:\下的工程文件PROJECTA4.vbp和窗体文件FORMA4.frm,按以 下要求完成程序:在窗体上创建2个列表框、2个标签、2个命令按钮。 List1用于显示可选课程、List2用于显示已选课程。单击“选课”按钮, 将List1中选定的课程名称加入到List2中显示,单击“清空”按钮,将 删除List2中的所有课程。程序运行的参考输出格式如图A-4所示,可选 课程至少包含图A-4所示的6门。最后将工程文件、窗体文件按原文件 名保存在D:\EX21文件夹下。 图A-4

2、打开D:\下的工程文件PROJECTB4.vbp和窗体文件FORMB4.frm,按以下要求完成程序:在窗体上创建1个列表框、1个图片框、2个标签、2个命令按钮。List1用于显示可选课程、Picture1用于显示已选课程。单击“选课”按钮,将List1中选定的课程名称加入到Picture1中显示,单击“清空”按钮,将删除Picture1中的所有课程。程序运行的参考输出格式如图B-4所示,可选课程至少包含图B-4所示的6门。最后将工程文件、窗体文件按原文件名保存在D:\EX21文件夹下。 图B-4

3、打开D:\下的工程文件PROJECTA41.vbp和窗体文件FORMA41.frm,按以下要求完成程序:单击窗体,能产生10个两位的随机整数并存放在一维数组中,并能在窗体中输出该10个随机整数、最大数及其在10个数中的位置,要求使用语句强制显式声明模块中的所有变量,程序运行的参考输出格式如图A-41所示。最后将工程文件、窗体文件按原文件名保存在D:\EX21文件夹下。 图A-41

【精选资料】VB控件 数组 过程复习题 参考答案2

常用标准控件作业 一、选择题 1.下列关于属性设置的叙述错误的是_______B__。 A.一个控件具有什么属性是Visual Basic预先设计好的,用户不能改变它 B.一个控件具有什么属性值是Visual Basic预先设计好的,用户不能改变它 C.一个控件的属性既可以在属性窗口中设置,也可以用程序代码设置 D.一个控件的属性在属性窗口中设置后,还可以再利用程序代码为其设置新值 2.以下过程是标签Label1的___A______事件。 Prviate Sub Label1_Click( ) End Sub A.单击 B.双击 C.拖拽 D.移动 3.下列控件中可设置滚动条是____C_____。 A.检查框(复选框) B.框架 C.文本框 D.标签框 4.标签所显示的内容,由___C______属性值决定。 A. Text B. Name C. Caption D. Alignment 5.定时器的定时间隔单位是__C_______。 A. 秒 B. 微秒 C. 毫秒 D. 分 6.检查框(复选框)的控件名称为______B___。 A. OptionBotton B. CheckBox C. PictureBox D. Image 7.若要求向文本框输入密码时,只在文本框中显示&号,则应当在此文本框的属性窗口中设置______D___。 A. Text属性值为& B. Caption属性值为& C. PasswordChar属性值为空 D. PasswordChar属性值为& 8.若要设置定时器的定时间隔,可通过__A_______属性来设置。 A. Interval B. Value C. Enabled D. Text 9.若要设置定时器的定时间隔设为5秒,应将Interval属性值设为_D________。 A. 5 B. 50 C. 500 D. 5000 10.若要使不可见命令按钮显示出来,可通过设置_____A____属性的值为True来实现。 A.Visible B.Enabled C.Default D.Value 11.若要使定时器起作用,应将其__D_______属性设置值设为True。 A.Interval B.Value C.Text D.Enabled 12.若要使命令按钮失效,可设置_____B____属性为False来实现。 A.Value B.Enabled C.Visible D.Cancel 13.若要向列表框新增列表项,可使用_____D____方法来实现。 A.Add B.RemoveItem C.Clear D.AddItem 14.要获得垂直滚动条Vscrollbar控件所能表示的最大值,可通过调用该控件的_____B____属性来实现。 A.Value B.Max C.Min https://www.360docs.net/doc/5311345298.html,rgeChange 15.要将命令按钮上的文字设置为“粗体”可通过设置__B_______属性值为True来实现。 A.FontItalic B.FontBold C.FontUnderline D.FontSize 16.要将命令按钮上的文字设置为“斜体”可通过设置____A_____属性值为True来实现。 A.FontItalic B.FontBold C.FontUnderline D.FontSize 17.要将命令按钮上的字体设为“隶书”,可设置______C___的属性为“隶书”。 A.FontBold B.BackItalic C.FontName D.FontSize 18.以下选项中,不属于单选按钮属性的是____D_____ A.Enabled B.Caption https://www.360docs.net/doc/5311345298.html, D.Min 19.组合框的风格可通过____C_____属性来设置。 A.BackStyle B.BorderStyle C.Style D.Sorted 20.标签的边框由_____C____属性的设置来决定。 A.BackColor B.BackStyle C.BorderStyle D.AutoSize 21.单选按钮的控件名称为____D_____。 A.Botton B.CheckBox C.PictureBox D.OptionBotton 22.单选按钮的当前状态可通过___A______属性来访问。 A.Value B.Checked C.Selected D.Caption 23.当滚动条中的滑块位置变化时,将触发其___C______事件。 A.LostFocus B.SetFocus C.Change D.GetFocus 24.假定Picture1和Form1分别为图片框和窗体的名称,以下语句___A______可清除图片框中的文本信息。 A.Picture1.cls B.Picture1.clear C.Form1.cls D.Form1.clear 25.确定一个窗体或控件的大小的属性是_____B____。 A.Width或Height B.Width和Height C.Top或Left D.Top和Left

控件数组

在https://www.360docs.net/doc/5311345298.html,中使用控件数组 控件数组是位于一个窗体上共享同一名称的一组同种类型控件。普通控件仅使用名称就可以识别,而引用控件数组中的成员则需要同时使用名称和索引。开发人员在Visual Basic 6.0 以及更早的版本中使用控件数组主要有以下三个理由: 1. 在循环中访问数组中控件的属性。 2. 向窗体动态添加新控件。 3. 允许一个事件例程与多个控件连接。 控件数组的使用,极大的方便了开发人员。然而,刚刚从Visual Basic6.0(以下简称VB6.0)过渡到Visual https://www.360docs.net/doc/5311345298.html,(以下简称https://www.360docs.net/doc/5311345298.html,)的初学者却发现,在https://www.360docs.net/doc/5311345298.html,中似乎不能使用控件数组了。笔者仔细查阅了https://www.360docs.net/doc/5311345298.html,的MSDN文档发现,在https://www.360docs.net/doc/5311345298.html, 中,确实不再支持控件数组。原因是,https://www.360docs.net/doc/5311345298.html,对事件模型作了很大的改动,引入了另外一种数据类型――控件集合模型,使控件数组没有存在的必要。就像VB6.0 中的控件数组可以共享事件一样,https://www.360docs.net/doc/5311345298.html, 中的事件模型允许任何事件处理程序都可以处理来自多个控件的事件,这就允许创建属于不同类型但共享相同事件的控件组。 所谓控件集合是指包含在一个容器中的所有控件的总和,能够创建控件集合的容器有:Form、Panel、GropBox等。程序运行时,可以通过访问容器的Control属性来得到该容器中的所有控件。 下面将演示如何通过控件集合来使用控件数组: 一、直接使用Form容器的控件集合来使用控件数组: 建立一个https://www.360docs.net/doc/5311345298.html,项目,在Form1中添加三个TextBox控件,名称分别为:TextBox1、TextBox2、TextBox3,一个Button控件。 双击Button,输入如下代码: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click …下面的语句是通过数组元素的下标来访问Form中的每一个元素。 Me.Controls.Item(0).Text = "集合中的第一个元素" Me.Controls.Item(1).Text = "集合中的第二个元素" Me.Controls.Item(2).Text = "集合中的第三个元素" Me.Controls.Item(3).Text = "集合中的第四个元素" End Sub 运行项目后,点击Button,看到的结果是:Form1中的所有控件(包括Button自己)的Text属性都被修改了,同时还发现,最后加入的的控件变成了集合中的第一个元素(下标为0)。这个结果说明: Form1中的所有控件已经自动构成了一个控件集合(控件数组),这个特点使得建立控件数组变得非常简单。 在访问这些控件时,除了可以通过控件名称直接访问外,还可以通过Contro.Item(n)属性按下标访问集合中的每一个控件; 集合中控件的类型可以不相同,这点和VB6.0完全不同; 集合中的下标顺序是按照加入控件的顺序倒排的; https://www.360docs.net/doc/5311345298.html,中控件数组的特点让人稍感不适的是,控件数组的下标是按加入顺序的倒排续产生的,但程序员完全可以改变这个顺序:在代码编辑窗中点击“#Region " Windows 窗体设计器生成的代码”旁边的“+”号,代码展开后,找到如下代码: Me.Controls.Add(Me.Button1) Me.Controls.Add(Me.TextBox3) Me.Controls.Add(Me.TextBox2) Me.Controls.Add(Me.TextBox1)

vb控件数组的习题及答案

电子教室学生注册时姓名文本框部分请输入:如:1411111111李四学号+姓名,中间不加空格) 实验准备: 请同学们删除d:\ex21文件夹里面的内容 如果没有ex21文件夹,请在d:\ 下新建ex21文件夹 1、打开D:\下的工程文件PROJECTA4.vbp和窗体文件FORMA4.frm,按以下 要求完成程序:在窗体上创建2个列表框、2个标签、2个命令按钮。List1 用于显示可选课程、List2用于显示已选课程。单击“选课”按钮,将List1 中选定的课程名称加入到List2中显示,单击“清空”按钮,将删除List2 中的所有课程。程序运行的参考输出格式如图A-4所示,可选课程至少包含 图A-4所示的6门。最后将工程文件、窗体文件按原文件名保存在D:\EX21 文件夹下。 图A-4

2、打开D:\下的工程文件PROJECTB4.vbp和窗体文件FORMB4.frm,按以下要求完成程序:在窗体上创建1个列表框、1个图片框、2个标签、2个命令按钮。List1用于显示可选课程、Picture1用于显示已选课程。单击“选课”按钮,将List1中选定的课程名称加入到Picture1中显示,单击“清空”按钮,将删除Picture1中的所有课程。程序运行的参考输出格式如图B-4所示,可选课程至少包含图B-4所示的6门。最后将工程文件、窗体文件按原文件名保存在D:\EX21文件夹下。 图B-4 3、打开D:\下的工程文件PROJECTA41.vbp和窗体文件FORMA41.frm,按以下要求完成程序:单击窗体,能产生10个两位的随机整数并存放在一维数组中,并能在窗体中输出该10个随机整数、最大数及其在10个数中的位置,要求使用语句强制显式声明模块中的所有变量,程序运行的参考输出格式如图A-41所示。最后将工程文件、窗体文件按原文件名保存在D:\EX21文件夹下。

VB数组的初始化

所谓数组的初始化,就是给数组的各元素赋初值,前一节已经介绍过赋值语句或inputbox函数为数组元素赋值,这两种方法都需要占用运行时间。影响效率。为此,visual basic 提供了array函数。利用该函数,可使数组在程序运行之前初始化,得到初值。Array 函数用来为数组元素赋值。即把一个数据读入某个数组。 其格式为: 数组变量名=array(数组元素值) 例如:static a as variant A=array(1,2,3,4,5) 意思就是把1,2,3,4,5这5个数值赋给数组A的各个元素。即a(0)=1,a(1)=2,a(2)=3,a(3)=4,a(4)=5。注意,在默认情况下(在没有option base 1的情况下),数组的下标从0开始,数组A有5个元素。 如果加上option base 1,数组的下标从1开始,那数组A也是有5个元素,只不过每个元素的值和上面的不一样,即变为了a(1)=1,a(2)=2,a(3)=3,a(4)=4,a(5)=5对于字符串数组,其初始化操作相同。 对array函数的几点说明 数组变量名 = array(数组元素值) 1、该函数只适用于一维数组,即只能对一维数组进行初始化,不能对二维数组或多维数组进行初始化。 2、声明数组变量时,只能声明为变体(variant)类型,而不能是其他具体的数据类型。 如dim a as variant 或dim a 是正确的。 而dim a as integer 或 dim a as string 是错误的。 3、在定义数组变量时,可以不经定义而直接使用。 控件数组的基本概念 控件数组则一组相同类型的控件组成,这些控件共用一个相同的控件名称,具有相同的属性,事件和方法。数组中的每一个控件都有一个唯一的索引号index即下标,来标识它们。在属性窗口,通过属性窗口中的index属性就可以设置相同类型控件的下标。 在程序中,当有若干个控件执行大致相同的操作时,控件数组是很用的。控件数组共享同样的事件过程。例如,假定一个控件数组含有3个命令按钮command1,则不管单击哪一个按钮,都会调用同一个click事件。如果要确定单击的是哪一个按钮。则要通过其index 属性(即下标值)来进行确认。其单击事件过程代码格式: Private sub command1_click(index as integer) …… End sub 和只有一个按钮command1单击事件过程 Private sub command1_click

vb控件数组的习题及答案

电子教室学生注册时姓名文本框部分请输入:如:11李四学号+姓名,中间不加空格) 实验准备: 请同学们删除d:\ex21 文件夹里面的内容 如果没有ex21文件夹,请在d:\ 下新建 ex21 文件夹 1、打开D:\下的工程文件和窗体文件,按以下要求完成程序:在窗体上创建2个列表框、2个标签、2个命令按钮。List1用于显示可选课程、List2用于显示已选课程。单击“选课”按钮,将List1中选定的课程名称加入到List2中显示,单击“清空”按钮,将删除List2中的所有课程。程序运行的参考输出格式如图A-4所示,可选课程至少包含图A-4所示的6门。最后将工程文件、窗体文件按原文件名保存在D:\EX21文件夹下。 图A-4 2、打开D:\下的工程文件和窗体文件,按以下要求完成程序:在窗体上创建1个列表框、1个图片框、2个标签、2个命令按钮。List1用于显示可选课程、Picture1用于显示已选课程。单击“选课”按钮,将List1中选定的课程名称加入到Picture1中显示,单击“清空”按钮,将删除Picture1中的所有课程。程序运行的参考输出格式如图B-4所示,可选课程至少包含图B-4所示的6门。最后将工程文件、窗体文件按原文件名保存在D:\EX21文件夹下。

图B-4 3、打开D:\下的工程文件和窗体文件,按以下要求完成程序:单击窗体,能产生10个两位的随机整数并存放在一维数组中,并能在窗体中输出该10个随机整数、最大数及其在10个数中的位置,要求使用语句强制显式声明模块中的所有变量,程序运行的参考输出格式如图A-41所示。最后将工程文件、窗体文件按原文件名保存在D:\EX21文件夹下。 图A-41

VB_数组与记录教学练习题

第八章数组与记录 教学要求: 掌握一维、二维数组的定义、引用、初始化,掌握静态和动态数组及其差别,掌握数组的基本使用方法:数组元素的输入、输出和赋值等,掌握使用For Each...Next语句操作数组元素的方法;掌握控件数组的定义、建立和使用,掌握排序算法。掌握记录类型及记录数组的概念、记录变量的初始化及引用。 知识点: 数组的定义、引用、初始化;静态和动态数组及其差别;For Each...Next语句;控件数组。 熟练数组“遍历”算法的设计规律,冒泡排序、快速排序算法,顺序查找、有序表对分查找、字符查找算法。 内容导航: 一、数组的概念 (一)数组的定义 在Visual Basic中,可以用4个语句来定义数组,这4个语句格式相同,但适用范围不一样。Dim用在窗体模块或标准模块中,定义窗体或标准模块数组;ReDim、Static可用于过程中;Public 用在标准模块中,定义全局数组。 Visual Basic 提供两种格式: 第一种格式: 一维数组Dim 数组名(下标上界) As 类型名称 二维数组Dim 数组名(第一维下标上界,第二维下标上界) As 类型名称 第二种格式: Dim 数组名([下界To] 上界[,[下界To]上界]……) Dim 数组名([下界To[上界[,[下界To]上界]……) (二)默认数组 在Visual Basic中,允许定义默认数组。默认数组就是数据类型为Variant(默认)的数组。在一般情况下,定义数组应指明其类型。 二、动态数组 (一)动态数组的定义 动态数组以变量作为下标值,在程序运行过程中完成定义,通常分为两步:首先在窗体层、标准模块或过程中用Dim或Public声明一个没有下标的数组(括号不能省略),然后在过程中用ReDim 语句定义带下标的数组。 ReDim 语句格式:

VB控件数组的操作技巧

VB控件数组的操作技巧 控件数组有在设计时设置好的,也有在运行中创建的。控件数组一方面使得程序简洁、令代码易于维护,另一方面能使程序具有灵活性。可见,科学地利用控件数组可使编程工作的效率更高。本文是从笔者回答网友的问题中整理出来的,与原来的回答相比略有改动。希望这些"技巧"对大家有些帮助。如有不妥之处,敬请指教。 一、运行中设置数组控件的属性 设窗体上有若干个以 Command1 命名的命令按钮,现要求:点击其中一个按钮后,该按钮不可用,而其它的按钮均可用。以下几行代码可以实现这个要求,比一个一个的设置高效得多。 Private Sub Command1_Click(Index As Integer) Dim i As Integer '计数器 Dim comNum As Integer '按钮的索引号 comNum = 0 For i = 0 To Command1.Count - 1 comNum = comNum + 1 If comNum > Command1.Count - 1 Then comNum = 0 Command1(comNum).Enabled = True '让所有按钮可用 Next Command1(Index).Enabled = False '让被单击按钮不可用

End Sub 二、运行中添加和卸载数组控件 窗体上已有一个文本框Text1,程序需要在运行时动态地创建若干文本框,可这样实现: 1.首先,设计时给Text1的Index属性设置为"0",这一步很重要:有了索引号才能创建数组控件; 2.编写代码:[之前请给工程添加两个命令按钮,Name属性取缺省值,Caption属性分别为:添加、卸载] Private Sub Command1_Click() Dim txtNum As Integer 'Text1的Index号 Dim Num As Integer '赋给各TextBox的值 txtNum = 0 '初值 Num = 1 '初值 Text1(0).Text = "Text" & Num '第一个Text1的值 Dim i As Integer '计数器 For i = 0 To 4 '添加五个TextBox txtNum = txtNum + 1 Num = Num + 1 Load Text1(txtNum) '加载文本框 Text1(txtNum).Top = Text1(txtNum - 1).Top + 450 '设置位置 Text1(txtNum).Text = "Text" & Num '加载内容

相关主题
相关文档
最新文档