vb控件数组

合集下载

第7章 VB数组

第7章 VB数组

只要组中有一元素,就会进入For Each块执行。一旦进入循
环,便先针对组中第一个元素执行循环中的所有语句。若组 中还有其它的元素,则会针对它们执行循环中的语句,当组 中的所有元素都执行完了,则会退出循环,然后从Next语句 之后的语句开始继续执行。 可以将一个For Each…Next循环放在另一个之中来组成嵌套。 但每个循环的元素必须是唯一的。若省略Next语句中的元素, 就像元素存在时一样执行。若Next语句在它相对应的For语 句之前出现,则会产生错误。
3. 对上述过程重复,直至剩下一个元素。
因此,要用到双重循环,外循环控制比较轮数,内循环控 制每轮的比较次数。
如: 8, 4, 20, 100, 28, 1, 第1轮: 8, 4, 20, 100, 28, 1 4, 8, 20, 100, 28, 1
用选择法程序
两次 交换 1, 8, 20, 100, 28, 4
flag,在进行每趟比较前将flag置成0,如果在比较中发生了数
据交换,则将flag置为1,在每一趟结束后,再判断flag,如果 它仍为0,则表示在该趟比较中未发生一次数据交换,排序结 束;否则进行下一趟比较。 用冒泡法程序(优化) P87例7-2示例程序
用比较排序法程序
7.3.2 选择法排序(从大到小排列)
算法介绍:排序的较多算法中,一种最简单的算法–––选择排序
法用得较多。基本思路: 设有n个数,需将它们从小到大顺序排列。
则: 1. 从n个元素中,通过比较,找出最小元素,放在第一个位置上。 2. 在剩下的n –1个元素中,找出第二小的元素并把它放在第二 个位置上。
P89例7-3示例程序
7.3.3 冒泡法排序(从大到小排列)
算法介绍:两两比较待排序序列中的元素,并交换不满足顺序

vb控件数组的使用

vb控件数组的使用

vb控件数组的使用VB控件数组是在Visual Basic开发环境中用于处理大量相似控件的一种技术。

通过创建控件数组,可以方便地对一组控件进行集成处理,从而提高代码效率。

下面将详细介绍控件数组的使用及其注意事项。

1、控件数组的声明与初始化在VB中,声明控件数组与普通变量的方法类似。

通过使用Dim语句,在程序代码中声明一个控件数组,例如:Dim myButton(10) as CommandButton这里创建了10个命令按钮的数组,可以直接操作数组元素,如:myButton(0).Caption="Button1"myButton(1).Caption="Button2"当然,你也可以使用For循环结构来初始化数组中的控件,如下所示:For i = 0 To 10Set myButton(i) = Controls.Add("mandButton", "Button" & i)myButton(i).Top = i * 25Next i上述代码使用For循环在窗体上添加了11个按钮,并将它们的Top 属性依次设置为0、25、50、75……。

2、控件数组的处理方法通过使用控件数组,可以对具有相同事件处理程序的一组控件进行集成处理。

比如,你可以使用For循环结构为这些控件注册事件,代码如下:For i = 0 To 10Set myButton(i) = Controls.Add("mandButton", "Button" & i)myButton(i).Top = i * 25AddHandler myButton(i).Click, AddressOf Buttons_ClickNext iPrivate Sub Buttons_Click()MsgBox "Clicked"End Sub这里,我们将11个按钮的Click事件都绑定到Buttons_Click事件处理程序,当任何一个按钮被单击时,都会产生一个被处理的事件。

VB程序设计第2版教学课件55控件数组

VB程序设计第2版教学课件55控件数组

2
控件数组建立方法
【控件数组的建立方法】
【方法1】利用为控件数组命名方法建立控件数组
① 在窗体上添加同一类型的多个控件。如:Text1、Text2…… ② 单击Text2,使其处于选定状态。 ③ 在属性窗口选择“名称”,即Name属性, 并修改控件名称,即:Text1,显示对话框, 单击“是”,则建立控件数组。 ④ 对要加到数组中的控件重复第②、③步, 输入与第③步相同的名称。
10个元素,随机产生10个3位整数放入控件数组Text1中,重新排 列这10个数,将其中的奇数放在前,偶数放在后,重排后的数据 放入Text2中。
界面设计
3
动态数组应用
代码设计
Dim n As Integer
Private Sub Command1_Click()
Dim i%
Randomize
n=0
2
【说明】
控件数组说明
① 控件数组建立后,只要改变一个控件的“名称”属性,即Name属 性,并将Index属性置为空(不是0),则该控件从控件数组中删除。 ② 建立了控件数组之后,控件数组中所有控件触发同一事件过程,由 事件过程根据不同的Index值执行不同的操作。
3
动态数组应用
【应用】建立2个数组控件Text1、Text2,每个数组控件具有
For i = 0 To 9
Text1(i).Text = Int(100 + Rnd * 900)
If Text1(i).Text Mod 2 <> 0 Then
n=n+1
Байду номын сангаас
'统计奇数个数
End If
Next i
End Sub

浅谈VB中的控件数组及其应用

浅谈VB中的控件数组及其应用

界 面主 要足 由一 个 Fa e 件 和 1 r 控 m 5个命 令按 建 控件 数 组组成 。下 面重 点介 绍命 令按 钮 控件 数组 的创 建 方法 。 创 建命 令 按钮 控 件 数组 , 以在 设 计 时创 建 , 可 以在 运 可 也
行 时创 建 。 为 了方便起 见 . 文在 设计 时创 建 。 但 本 设计 时创 建 有二 种方 法 。第 一 种方 法 : 复制 已有 的命 令 按钮 控件 数 组 并将 其粘 贴 到窗体 上 。具 体操 作 步骤 为 :) 1 先在 窗体 的
Vo . . I5 No3
Ma 2 用
钟 绍 辉
( 沙洋师范专科 学校 计算机科 学与技 术系, 湖北 沙洋 480) 420
摘要 :控件数 组” V 6 “ 是 B. 0中一项 简单而 实用的技 术 , 通过 对控件 的简单拷 贝 、 贴 , 者 可以建立一 组 粘 开发 控件 , 些控件 具有相 同的类型和名称 , 这 共享事件集 。程 序开发 中利用该控件 可以优化代码 。
结束或进行新一轮游戏 ;1 5 如果不成功 , 重复 15步。经 —
分 析可 知 .要 编 写 的代 码并 不 复 杂 。但 如果 不用 控 件 数 组 。 用 1 命 令 按 钮 , 每 个 命 令 按 钮 都 要 编 写 一段 而 5个 则 相 似 的代 码 . 每 个 按钮 在 移动 时 很难 对 其 进行 定 位 , 且 但
控件数组是vb60中一项简单而实用的技术通过对控件的简单拷贝粘贴开发者可以建立一组控件这些控件具有相同的类型和名称共享事件集
维普资讯
第 5卷 第 3期 20 年 5 月 06
襄樊 职 业 技 术 学 院 学 报
J un l fX a ga c t n la dT c nc l olg o ra in fnVo ai a n e h ia l e o o C e

VB控件数组的操作技巧

VB控件数组的操作技巧

VB控件数组的操作技巧控件数组有在设计时设置好的,也有在运行中创建的。

控件数组一方面使得程序简洁、令代码易于维护,另一方面能使程序具有灵活性。

可见,科学地利用控件数组可使编程工作的效率更高。

本文是从笔者回答网友的问题中整理出来的,与原来的回答相比略有改动。

希望这些"技巧"对大家有些帮助。

如有不妥之处,敬请指教。

一、运行中设置数组控件的属性设窗体上有若干个以 Command1 命名的命令按钮,现要求:点击其中一个按钮后,该按钮不可用,而其它的按钮均可用。

以下几行代码可以实现这个要求,比一个一个的设置高效得多。

Private Sub Command1_Click(Index As Integer)Dim i As Integer '计数器Dim comNum As Integer '按钮的索引号comNum = 0For i = 0 To Command1.Count - 1comNum = comNum + 1If comNum > Command1.Count - 1 Then comNum = 0Command1(comNum).Enabled = True '让所有按钮可用NextCommand1(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 '添加五个TextBoxtxtNum = txtNum + 1Num = Num + 1Load Text1(txtNum) '加载文本框Text1(txtNum).Top = Text1(txtNum - 1).Top + 450 '设置位置Text1(txtNum).Text = "Text" & Num '加载内容Text1(txtNum).Visible = True '令其可见:不能漏NextCommand1.Enabled = FalseCommand2.Enabled = TrueEnd SubPrivate Sub Command2_Click()Dim i As Integer, N As IntegerN = 0For i = 1 To Text1.Count - 1N = N + 1Unload Text1(N)NextCommand1.Enabled = TrueCommand2.Enabled = FalseEnd Sub三、给运行中添加的数组控件命名并编写事件其实例二已经给数组控件命了名,只是简单了些。

vb 控件属性 数组解决办法

vb 控件属性 数组解决办法

Vb 属性接口数组解决办法前不久制作Activex 控件,自定义接口成员,本来想通过外界传递数组给控件,但是我没有找到设置接口成员属性为数组的方法(我是个VB初学者,直到目前也没有找到方法)。

后来发现vb中字符串长度可以存放多达2亿个字符。

想到了将数组转换为字符串然后用字符串转换为数组的方法。

整体思路:在控件外接程序中将数组生成字符串,在控件里面将得到的字符串转换为数组完成数组的传递。

举例详细代码如下宿主程序中按钮Command1单击触发以下函数运行:第一个For 循环生成x(0 to 50),y(0 to 50)两个数组。

a,b为两个字符串,其第一个字符(数字形式)存放数组元素数目一共从0到50,有51个元素。

Str()指令是将数字转换为字符数字,比如将51转换为“51”。

第二个For循环将a,b两个字符串不断的添加字符(数字转换为字符形式,采用&连接,中间用逗号隔开)。

从而a,b字符串分别是“51,0,1,2,3……,50”和“51,627.5 578.5 531.5 486.5……627.5”控件的名称为ctr,为其设置了三个属性接口sn(布尔型) snx(字符串)sny(字符串)。

其中snx,sny分别用于承接外界传递的字符串,Sn为某个位(与该主题无关,在控件中指示另外某个事件的)Private Sub Command1_Click()Dim cd As IntegerDim x() As DoubleDim y() As Doublecd = 50ReDim x(cd)ReDim y(cd)For i = 0 To cd Step 1x(i) = iy(i) = (i - 25) ^ 2 + 2.5Next iDim a As StringDim b As Stringa = Str(cd + 1)b = Str(cd + 1)For i = 0 To cd Step 1a = a & "," & Str(x(i))b = b & "," & Str(y(i)) Next ictr.sn = Truectr.snx = actr.sny = bEnd Sub控件中程序字符串处理代码Private Sub zhunhuan()Dim xa() As DoubleDim ya() As DoubleDim af2() As StringDim af3() As Stringaf2 = Split(m_snx, ",")af3 = Split(m_sny, ",")Dim cd As Integercd = Int(Val(af2(0))) ReDim ya(cd - 1)ReDim xa(cd - 1)For i = 0 To (cd - 1) Step 1 xa(i) = Val(af2(i + 1)) Next iFor i = 0 To (cd - 1) Step 1ya(i) = Val(af3(i + 1))Next iEnd Sub上述代码split函数将字符串剥离成一个数组从而af2(),af3()中存放字符即af3()中af3(0)为“51” af3(1)为“627.5” af3(2)为“578.5”For循环中Val(af3(i + 1))将af3(i + 1)中元素由字符转换为数字即af3(1)由“627.5”变换成为627.5 从而完成了整个数组由宿主程序往控件的传递。

VB基础教程:第五章第五节控件数组

VB基础教程:第五章第五节控件数组

5.5 控件数组
1.控件数组的概念
控件数组是由⼀组相同类型的控件组成的,它们共⽤⼀个控件名,具有相同的数组。

控件数组适⽤于若⼲个控件执⾏的操作相似的场合,控件组共享同样的事件过程。

控件数组通过索引号(属性中的Index)来标识各控件,第⼀个下标是0 。

如:Text1(0)、Text1(1)、Text1(2)、Text1(3)……
2.控件数组的建⽴
(1)在设计时建⽴
步骤:1)在窗体上画出某控件,并进⾏属性设置。

2)选中该控件进⾏“复制”和“粘贴”操作,系统提⽰“是否建⽴控件数组”,选择是即可。

多次粘贴就可以创建多个控件元素。

3)进⾏事件过程的编程。

(2)运⾏时添加控件数组
⽅法:1)在窗体上画出某控件,设置该控件的Index值为0,表⽰该控件为数组。

2)在编程时通过Load⽅法添加其余若⼲个元素,也可以通过Unload删除某个添加的元素。

3)每个添加的控件数组通过Left 和Top属性,确定其在窗体上的位置,并将Visible设置为True。

使⽤⽰例:建⽴⼀个类似国际象棋的棋盘,要求⿊⽩交替,运⾏时单击某个棋格,会改变颜⾊并显⽰其序号。

使用控件数组(VB6)

使用控件数组(VB6)

使用控件数组(VB6高级编程)(福哥录入)控件数组是一组具有共同名称和类型,且事件过程也相同的控件。

一个控件数组至少应有一个元素,元素数目可在系统资源和内存允许的范围内增加;数组的大小也取决于每个控件所需的内存和windows 资源。

在控件数组中可用的最大索引值为32767。

同一控件数组中的元素有自己的属性设置值。

常见的控件数组包括实现菜单控件和选项按钮分组。

在设计时,使用控件数组添加控件所消耗的资源比直接向窗体添加多个相同类型的控件所消耗的资源要少。

当希望若干控件共享代码时,控件数组也很有用。

例如,如果创建了一个包含三个选项按钮的控件数组,则无论单击那个按钮时都将执行相同的代码。

若要在运行时创建新控件,则新控件必须是控件数组的成员。

使用控件数组时,每个新成员继承数组的共享事件过程。

没有控件数组机制是不可能在运行时创建新控件的,因为全新控件不具有任何事件过程。

控件数组解决了这个问题,因为每个新控件都继承为数组编写好的事件过程。

例如,如果窗体上有若干文本框,而且每个文本框都接受一个日期数值,则可创建一个控件数组,使所有文本框共享一个合法性检查代码。

1、设计时创建控件数组设计时有三种方法创建控件数组:(1)将相同名字赋予多个控件。

(2)复制现有的控件并将其粘贴到窗体上。

(3)将控件的Index 属性设置为非Null数值。

可以通过改变控件名称添加控件数组元素,步骤如下所示:(1)绘制控件数组中要添加的控件(必须为同一类型的控件)。

决定哪一个控件作为数组中的第一个元素。

(2)选定控件并将其Name 设置值变成数组第一个元素的Name 设置值。

(3)在数组中为控件输入现有的名称时,VisualBasic 将显示一个对话框,要求确认是否要创建控件数组。

此时选择“确定”按钮确认操作。

例如,若控件数组第一个元素名称为cmdCtlArr,则选择一个CommandButton将其添加到数组中,并将其名称设置为cmdCtlArr,此时,将显示这样一段信息:“已经存在名为‘cmdCtlArr’的控件。

VB教程(江苏省)第六章修改(控件数组)

VB教程(江苏省)第六章修改(控件数组)

【例6-14】在窗体上放一文本框,编写一事件过 程,保证在该文本框内只能输入字母,且无论大小写, 都要转换成大写字母显示。 程序如下: Private Sub Text1_KeyPress (KeyAscii As Integer) Dim str$ If KeyAscii < 65 Or KeyAscii > 122 Then Beep KeyAscii = 0 ElseIf KeyAscii >= 65 And KeyAscii <= 90
【例6.12】显示鼠标指针的当前位置。 程序如下:

(Button As Integer,_ Shift Single,Y As Single)
Sub
As
Form_MouseMove
Integer , X As
Text1.Text = X
Text2.Text = Y
End Sub 运行结果如图6-6所示。
Case 2 dataout.Caption = ops1 * ops2 Case 3 dataout.Caption = ops1 / ops2 End Select res = True End Sub ' 已算出结果
6.5 鼠标事件和键盘事件
鼠标对于Windows应用程序设计来说几乎是必需的, 尤其是在图形图像处理的程序设计中,显得更为重要。 而鼠标应用的基础是鼠标事件。下面我们就来简单介 绍一下窗体鼠标事件及其应用。 6.5.1 鼠标事件
Name属性设置为同一值。
6.4.3
控件数组的应用举例
建立了控件数组之后,控件数组中所有控件共享
同一事件过程。例如,假定某个控件数组含有10个标
签,则不管单击哪个标签,系统都会调用同一个Click

论VB中控件数组的建立及对事件的响应

论VB中控件数组的建立及对事件的响应

果 写 Pia u bl l k ) 统 会 提 示 “ r t sbl e1ci ( 系 ve a c 过程 声 明 这 种建 立 的方 法 适 用 于 已知 该 种 控 件 的 数 目 。 丽 与 同 名 事 件 不 匹 配 ” 丽 写 成 P v t sb lb l () . i e r a u a el i 且 在 控件数 目不多 的情 况下使 用 。 由 于每个 控件 都可 ci ( 也 是不 可 以 。纠其原 因 , lk ) c 就是 因 为此 时是 控件 以在 窗 口画 出 , 以使 用起 来 比较直 观 。 所 数组 . 件数组 毕竟 与普 通控 件是 不 同 的 . 以在 响应 控 所 22动 态 建立 : 态建 立 分 两 种 方 式 . 中第 二 种 事件 时 的语法 也 是不 同。 . 动 其 是 作 者经过 实践 丽发 现 + 于 “ 属 动静 结合 的方式 ” 。 其 正 确 语 法 是 P vt u ae1cik (n e s i e r a sblb l l c id xa 221 窗 口添加 一个 所需 元 件 .再在 该 元件 的属 .. 在 it e) 其 他 的事 件 中 , 果涉 及 多个 形 参 , 形参 ne r。离 g 如 则 性 栏 里 找 到 “ d x 一 栏 . 其 id x值 设 置 为 “ ” 这 的第 一 个 必须 是 id xa tgr 例如 : b l i e” n 将 ne 0。 n e 8i ee 。 n l e 控件 有事 a 样 就完 成 了动态 建立 。 件 P i t S b L b l Mo sDo f utn As I tg r r ae u a el u e wn B t ne e, v o 222在 窗 口添加 出一个 所需 元 件 .再 将 该元 件复 。。 Si nee, sSnl Y A ige. 控件 数 组 hfAs t rXA ig , sSn )而 t I g e l 制 粘 贴 。 出现 对话框 : 否建 立 控件 数组 + 击确 定 。 会 是 点 的 m ue o n事 件 为 :r aeS b L b l Mo sD w o sd w P i t u a el v ue o n 之后 删 除 复制 的那个 元 件 ( 可 以不 删 , 然 可 以实 也 依 ( d x a nee,utn A nee, hf A nee, i e sitgr t sItgr S i sIt r X n B o t g

VB.NET中控件数组的实现

VB.NET中控件数组的实现

中控件数组的实现摘要:VB编程时,当要处理一组相同类型的控件的同一事件过程时,我们可以引入控件数组这一概念。

如进行计算器程序编写时,可创建十个数字按钮的控件数组,共享同一事件过程。

VB6升级到后,VB6控件数组的创建方法在.NET 中不可用,本文总结了几种中使用控件数组的方法。

关键词:控件数组事件过程程序代码一、关于控件数组熟悉VB6编程的,对控件数组这一概念应该非常熟悉,它是VB6中的一项简单而非常实用的技术,是指具有相同名称的同类型的控件,共享同一事件。

它的最大好处是:简化编程。

但当我们把这一用法沿用到中来时,却发现无法实现。

虽然中没有VB6中实现控件数组的方法,但在 中控件数组的运用更加灵活了。

中,控件数组的创建不再是在设计时简单地将同类型的各个控件的Name属性值设置成同一名称就可以了,中,不公能够创建同类型的相同事件处理过程,还能够创建属于不同类型但共享相同事件的控件组。

二、中控件数组的实现要在中实现控件数组这一机制,我们需要通过编写代码来完成,下面来介绍几种的方法,大家可以根据程序的需要进行选择。

1、使用Handles子句。

先将控件数组中各控件对象依次添加到窗体,然后创建其中一个对象的事件过程(执行部分先不写),再把其它对象的这一事件依次添加在后面,各事件过程名之间用逗号分隔开来。

在事件过程的执行部分,如果需要引用这些对象,则要先给这些对象创建一个相同的名称。

当要引用对象时,不再使用它们的Name属性值,而是新创建的名称。

示例代码如下(部分内容省略):Label1_Click(ByVal sender…)HandlesLabel1.Click,Label2.Click,Label3.ClickDim lbl As Label = CType(sender, Label)当中,创建的是Label1的Click事件,在其后面,添加了Label2及Label3的Click事件。

事件过程中,通过一条Dim语句,定义三个标签具有相同的名称lbl,在下面的代码中,要设置或获取其中某一个标签的某个属性值时,直接使用名称lbl即可。

vb控件数组的习题及答案

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-42、打开D:\下的工程文件和窗体文件,按以下要求完成程序:在窗体上创建1个列表框、1个图片框、2个标签、2个命令按钮。

List1用于显示可选课程、Picture1用于显示已选课程。

单击“选课”按钮,将List1中选定的课程名称加入到Picture1中显示,单击“清空”按钮,将删除Picture1中的所有课程。

程序运行的参考输出格式如图B-4所示,可选课程至少包含图B-4所示的6门。

最后将工程文件、窗体文件按原文件名保存在D:\EX21文件夹下。

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

最后将工程文件、窗体文件按原文件名保存在D:\EX21文件夹下。

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

VB实验10 控件数组

VB实验10 控件数组

上一页
下一页
退 出
【分析】 创建控件数组后,在运行时使用 Load语句向 控件数组中添加控件,使用 Unload 语句删除在 运行时新增的控件。
第9 页 Visual Basic程序设计实验指导
实验10-2
目的和要求 预备知识
上一页
下一页
退 出
【实验步骤】 (1)界面设计 请参照图10-3所示的界面设计窗体。 (2)完善程序代码 ( 3 )运行程序,观察程序运行结果,最后将 窗体文件保存为 F10-2.frm ,工程文件保存为 P10-2.vbp。
第14页 Visual Basic程序设计实验指导
实验10-4
目的和要求 预备知识
【题目】 用筛选法找出1~100之间的所有素数,运行界面 如图所示。
上一页
下一页
退 出
第15页 Visual Basic程序设计实验指导
实验10-4
目的和要求 预备知识
【分析】
筛选法求出某一范围内的所有素数的思路为:首先在纸上 写出1~100的全部整数,然后逐一判断它们是否为素数,找出 一个非素数就把它们筛掉,最后剩下的就是结果。 具体操作如下: (1)先将1筛掉。 (2)用2去除它后面的每个数,把能被2整除的数筛掉。 (3)把3的倍数筛掉。 ( 4 )把 5 的倍数筛掉(注意 4 已经被筛掉,因为它是 2 的倍 数)。 …… 这个过程一直进行到除数为 Sqr(100)为止,最后剩下的就 是素数。
实验
目Байду номын сангаас和要求 预备知识
10
控件数组
上一页
下一页
退 出
第1 页 Visual Basic程序设计实验指导
一、目的和要求
目的和要求 预备知识

VB程序设计基础 第6章 控件及控件数组

VB程序设计基础 第6章 控件及控件数组

除了单击(Click)和双击(DblClick)外,基本 的鼠标事件还有3个:MouseDown、 MouseUp和MouseMove。工具箱中的大多数控件都 能响应这3个事件。
MouseDown:鼠标的任一键被按下时触发该事件。 MouseUp:鼠标的任一键被释放时触发该事件。 MouseMove:鼠标被移动时触发该事件。 以Form 对象为例,它们的语法格式为:
dataout.Caption = "" End Sub
' 按下=键的事件过程 Private Sub result_Click() ops2 =dataout.Caption Select Case op1
Case 0
dataout.Caption = ops1 + ops2 Case 1 dataout.Caption = ops1 - ops2
Name属性设置为同一值。
6.4.3
控件数组的应用举例
建立了控件数组之后,控件数组中所有控件共享
同一事件过程。例如,假定某个控件数组含有10个标
签,则不管单击哪个标签,系统都会调用同一个Click
过程。由于每个标签在程序中的作用不同,系统会将 被单击的标签的Index属性值传递给过程,由事件过程 根据不同的Index值执行不同的操作。
3、事件:Click、DblClick 一般不需要编写Click事件过程 通常在单击命令按钮或发生DblClick事件时才读取 Text属性
四、组合框(ComboBox):
组合框是组合了文本框和列表框的特性而形成的一 种控件。 组合框在列表框中列出可供用户选择的选项,另外还 有一个正文框。 当用户选定某项后,该项内容自动装入 文本框中。当列表框中没有所需选项时,除了下拉式列表 框(Style为2)之外都允许在文本框中用键盘输入,但输入 的内容不能自动添加到列表框中。 组合框占用屏幕空间比列表框要小。 组合框有三种不同的风格,由Style属性值决定。

vb控件数组的使用

vb控件数组的使用

VB控件数组的使用一、什么是VB控件数组在VB编程中,控件是指用于构建用户界面的可视化元素,例如按钮、文本框、列表框等。

而控件数组是指将多个相同类型的控件组织在一起以便更方便地进行管理和操作。

二、为什么要使用VB控件数组使用控件数组可以带来许多好处,包括但不限于以下几点:1.简化代码:通过使用控件数组,我们可以减少代码的重复性,只需编写一次代码即可对数组中的所有控件进行操作。

这样可以大大简化代码的编写和维护工作。

2.提高效率:在某些情况下,我们需要对同一类型的多个控件进行相同或类似的操作。

使用控件数组可以避免重复性的操作,提高编程效率。

3.灵活性:控件数组可以动态增加或减少数组中的控件数量,从而使程序更具有灵活性和可扩展性。

4.统一管理:使用控件数组可以将同一类型的控件进行组织和管理,方便对其进行统一的控制和处理。

三、创建VB控件数组的方法在VB中,我们可以使用以下方法来创建和使用控件数组:1. 使用Control数组VB提供了一个叫做Control的特殊数组,可以容纳所有类型的控件。

我们可以通过声明Control类型的数组并将其初始化为特定类型的控件来创建控件数组。

例如,以下代码创建了一个名为btnArray的按钮数组:Dim btnArray() As Control = {btn1, btn2, btn3}其中btn1、btn2和btn3是已经存在于窗体上的按钮控件。

2. 动态创建控件数组除了使用Control数组外,我们还可以在运行时动态创建控件数组。

可以使用ReDim语句来调整数组的大小,并使用循环语句逐个初始化数组中的控件。

例如,以下代码使用循环创建了一个名为txtArray的文本框数组:Dim txtArray() As TextBoxDim i As IntegerReDim txtArray(2) '设置数组大小为3For i = 0 To 2txtArray(i) = New TextBox '创建新的文本框控件txtArray(i).Name = "txt" & (i + 1) '设置控件的名称Me.Controls.Add(txtArray(i)) '将控件添加到窗体上Next i在上述代码中,我们通过ReDim语句设置了txtArray数组的大小为3,并在循环中创建了3个新的文本框控件,并将其添加到窗体上。

vb控件数组的使用

vb控件数组的使用

vb控件数组的使用VB控件数组的使用在VB编程中,控件数组是一种非常有用的功能,它可以让我们更方便地对多个控件进行操作和管理。

控件数组允许我们将一组相同类型的控件组织在一起,并通过索引来访问它们,从而提高编程效率和代码的简洁性。

控件数组的定义非常简单,只需要在声明控件时加上一个方括号,用来表示这是一个控件数组。

例如,我们可以定义一个名为btnArray的按钮数组,代码如下:Dim btnArray(10) As Button上述代码定义了一个包含10个按钮的按钮数组。

我们可以通过索引来访问数组中的按钮,例如btnArray(0)表示第一个按钮,btnArray(1)表示第二个按钮,依此类推。

使用控件数组可以简化我们对多个控件的操作。

例如,如果我们想要给按钮数组中的所有按钮设置相同的属性,我们只需要使用一个循环来遍历数组,并对每个按钮应用相同的属性即可,代码如下:For i As Integer = 0 To btnArray.Length - 1btnArray(i).Text = "按钮" & (i + 1)btnArray(i).BackColor = Color.RedNext上述代码将按钮数组中的所有按钮的文本设置为"按钮1"、"按钮2"、"按钮3"等,并将它们的背景颜色设置为红色。

除了设置属性,控件数组还可以方便地管理多个控件的事件。

例如,如果我们想要为按钮数组中的所有按钮添加相同的点击事件处理程序,我们只需要使用一个循环来遍历数组,并为每个按钮添加相同的事件处理程序即可,代码如下:For i As Integer = 0 To btnArray.Length - 1AddHandler btnArray(i).Click, AddressOf btn_ClickNextPrivate Sub btn_Click(sender As Object, e As EventArgs)Dim btn As Button = DirectCast(sender, Button)MessageBox.Show("您点击了按钮:" & btn.Text)End Sub上述代码将为按钮数组中的所有按钮添加一个名为btn_Click的点击事件处理程序,当任何一个按钮被点击时,都会弹出一个消息框显示按钮的文本。

VB程序设计 第五章 数组

VB程序设计 第五章 数组

第五章数组主要内容●数组的概念●静态数组及声明●动态数组及声明●数组的基本操作●控件数组●自定义数据类型●常用算法(二)●常见错误5.1 数组的概念1.引例若我们要求一个班100个学生的平均成绩,然后统计高于平均分的人数。

按以前简单变量的使用和循环结构相结合,求平均成绩程序段如下:aver = 0For i = 1 To 100mark = Val(InputBox("输入第" & i & " 位学生的成绩"))aver = aver + markNext iaver = aver / 100但若要统计高于平均分的人数,则无法实现。

mark是一个简单变量,存放的是最后一个学生的成绩。

从已有知识解决方法:再重复输入成绩,逐一与平均分比较。

这样带来两个问题:(1)输入数据的工作量成倍增加;(2)若本次输入的成绩与上次不同,则统计的结果不正确。

解决此问题的根本方法是:始终保持输入的数据,一次输入,多次使用,为此必须引入有关数组的内容。

2.数组的概念数组并不是一种新的数据类型,而是一组相同类型的变量的集合。

数组必须先声明后使用。

在VB中有两类数组,一类是静态(定长)数组另一类称为动态(可变长)数组。

5.2 静态数组及声明在声明数组时就确定了数组元素的个数的数组称为静态数组。

定义格式: Dim 数组名(下标1[,下标2…]) [As 类型]数组维数:定义数组是用几个下标就表示数组是几维数组,最多60维。

定义数组是下标的形式为[下界 To ] 上界省略下界则系统默认下界为0,下界上界的值必须为数值常数或常数表达式(也可含逻辑常数或数值字符串)。

数组每一维大小:上界-下界+1。

数组元素的个数(或称大小):每一维大小的乘积[例]Dim mark(1 to 100) As Integer定义数组mark为一维整型数组,其下界为1,上界为100,大小为100(即mark有100个元素)。

VB 控件数组

VB 控件数组

变量存储单个数据
控件数组
控件数组是由一组相同类型的控件组成 下标:控件的Index属性,Index从0开始 数组名:控件具有相同Name属性值 事件:共享同样的事件过程
Sub CmdName_Click(index as integer)
….
End Sub
控件数组的建立
在设计时建立
测试计算器
+、-、*、/各测一例 调试错误方法
输出中间变量,判断错误
如:print a 或者debug.print a,来验证a的值是否正确 测试完毕后,再删除这些输出语句
控件数组
目标
控件数组 计算器
回顾数组
数组是由一定数目的同类元素按一定顺序排列而 成的结构类型数据 数组是一组具有同一名字、不同下标的下标变量 一般形式:s(n),例如:s(3)
s 1.5 3.2 0.09 45.3987
3
2 1
数组元素
下标
元素在数组 中的位置
0
数组与普通变量
数组
连续空间,存储多个相同类型的数据 每个数据可以有统一的名称(类比于变量名称):数组 名(下标)
示例
1.当单击任意按钮后,在文本框中显示该按钮对 应的数字
简易计算器
基本思路
单击0~9的按钮输入第一个数 单击一个运算符 (+、-、*、/) 单击0~9的按钮输入第二个数 当用户单击=时,根据所选运算符进行计算,并在文本框显示结果
关键点
如何区分用户输入的是第一个数还是第二个数? 提示:设置flag 如何简化相同功能的代码? 提示:同一功能设成控件数组 如何判断单击了哪个数组元素? 提示:通过控件数组单击事件的参数,传递数组下标

vb控件数组

vb控件数组

关于下标变量的规定: (1)下标变量在程序中的用法和简单变量的用法一样。 (2)由于程序必须写在一行上,而且字符一样大小, 所以下标要放在小括号内,如a(3)不能写成 a3, 后者将被当作简单变量处理。 (3) 下标可以是常数、数值变量、算术表达式甚至下 标变量。下标中如含有变量,使用前应给该变量提 前赋值。例如:当i=5时,a(i)表示a(5),a(i+3) 表示a(8);如果b(3)=5,则a(b(3))表示a(5)。 (4)下标变量的下标值应该为整数,否则计算机将对 下标进行自动取整。如a(3.2)将被视为a(3) ,a(3.7)将被视为a(-4)。
6.1.4 数组元素的存放
数组中的各个元素在内存中的存储是按照一定的规律, 占据着一片连续的存储区域。例如一维数组的存放顺序就 是它的下标顺序;而多维数组的元素的存放顺序遵照下述 规定:最后一个下标先变化,第一个下标最后变化(按行 存放)。例如二维数组的存放顺序是:先行后列 ,即先存 放第一行,然后再存放第二行,以此类推。对于一个二维 数组a(m,n)中的数组元素a(i,j)在顺序存放中的序号是 i*n+j。例如当下界为1时的一个二维数组a(2,3),它的存 放顺序是:a(1,1),a(1,2),a(1,3),a(2,1),a(2,2), a(2,3)。
6.2.2 数组的应用
1. 一维数组的应用 一维数组元素只有一个下标,只要下标值确定,元素在数组中的位置也就确定了。数 学上形如数列{ai}表示的数据均可用一维数组来处理。 【例6-2-1】使用数组计算1+2+3+…+100的值 Option Base 1 ' 设置下界自动为1 Private Sub Command1_Click() Dim a(100) As Integer Dim s As Integer For i = 1 To 100 a(i) = i ' 数组的产生 Next i s = 0 ' 累加器初始化 For i = 1 To 100 s = s + a(i) Next i Print "1+2+3+…+100="; s End Sub
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Public Number(5) As Integer Public Price(20) As Double 第一个是声明了一个有6个元素的数组,其索引值为0~5;第二个是声明 了一个有21个元素的数组,其索引值为0~20。 说明: (1)数组名的命名规则与简单变量的命名规则相同。 (2)数组声明要考虑其作用域,也就是应用的有效范围,原则上“谁定义 ,谁使用”。 (3)如果省略<类型>,将按Variant处理。如果数组的数据类型可以确定, 最好不要省略<类型>。 (4)<维数说明>指定数组的维数以及各维的范围,为了规定下界,用关键 字To显式提供下界(为Long数据类型)。 定义格式为: [<下标下界1> To] <下标上界1> [,<下标下界2> To] <下标上界2>]… 如果没有使用to显式指定下标下界,则可以用Option Base {0|1}语句控制下 界。例如,当n为1时,缺省下界为1,下界为1的情况会经常用到。当n为0时, 就是缺省下界为0,此时Option Base 语句可省。
Private Sub Command2_Click() Dim max As Integer, min As Integer Dim s As Integer, m As Single min = 100: max = 10: s = 0 For i = 1 To 10 If a(i) > max Then max = a(i) If a(i) < min Then min = a(i) s = s + a(i) Next i m = s / 10 Text1.Text = max Text2.Text = min Text3.Text = m End Sub
【例6-2-2】求n个两位数的极值、平均值、方差和标准差。 建立程序用户界面与设置相应的对象属性,如图6-2-1。
程序代码如下: Dim a(1 To 10) As Integer Private Sub Command1_Click() Form_Load Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" End Sub
返回目录
6.1.2
数组的概念
数组是由一系列具有相同变量名、相同数据类型的下标变 量构成的有序排列。把一组具有相同一名字,不同下标的 下标变量称为数组。 例: a(1)、a(2)、a(3)、a(4)、a(5)。 变量名就是数组名,每个下标变量称为该数组的一个数组 元素。 数组的数据类型也就是该数组包含的下标变量的数据类型。 在Visual Basic中,可以声明任何基本数据类型的数组, 包括用户自定义类型和对象变量,但是一个数组中的所有 元素应该具有相同的数据类型,只有当数据类型为变体类 型(Variant)时,各个元素能够包含不同类型的数据。
返回目录
例如: Dim Num(1 To 15) As Integer ' 索引值为1~15 Dim Price(10 To 20) As Double ' 索引值为10~20 Dim grade(1 To 50,3) as single „ 声明包含50×4个元素的二 维数组
数组定义中需要注意的问题:
图6-2-2 统计界面
Private Sub Command3_Click() Unload Me End Sub Private Sub Form_Load() Dim p As String Randomize p = "" For i = 1 To 10 a(i) = Int(Rnd * 90) + 10 p = p & Str(a(i)) & "," Next Label4.Caption = LTrim(Left(p, Len(p) - 1)) End Sub
在 数 学 上 , 我 们 可 以 用 一 串 有 序 的 数 据 a1 、 a2 、 a3、…ai、…、a100来处理100个学生的某门课程的成绩,简 化为{ai}表示,这是一组类型相同的数据,每个数据在其中 的顺序位置是一定的,我们把i(=1,2, 3,…,100)称为下标。 在Visual Basic中,由于程序写在一行上,而且字符一 样大小,所以下标要放在小括号内。例如,上面的数据可表 示为 a(1) 、 a(2) 、 a(3) 、 … 、 a(i) 、 … 、 a(100) , 在 Visual Basic中,我们把每一个a(i)都叫做下标变量。下标 变量的一般格式为:a(i)。其中a是变量名,i是下标。
第6章
6.1 6.2 6.3 6.4 6.5
数组
数组的概念 固定数组 动态数组 For Each … Next循环 控件数组 习题
6.1 数组的概念 下标变量 数组的概念 数组的维数 数组元素的存放 数组的形式
6.1.1 6.1.2 6.1.3 6.1.4 6.1.5
返回目录
6.1.1 下标变量
(1)同一过程中,数组名与变量名不能同名。
(2)定义数组时,元素个数必须是常数,不能是变量或表达 式。如DIM a(n+5) 错。
如果在运行过程中定义数组可用以下方法解决用redim定义。 用redim语句定义。 如:n = Inputbox(“输入n的值”) redim a(n+5)
(3)数组类型除在AS子句中给出外,也可通过类型说明符指定
返回目录
6.1.3 数组的维数
如果一个数组的元素只有一个下标,则称这个数 组为一维数组。 也就是说,用一个下标便可以确定各个数组元素在 数组中的位置。 如果数组中的元素,必须用两个下标才能确定所 处的位置,这样的数组称为二维数组。 例如:有50个学生,每个学生有2门课程的成绩, 则这些成绩可以用二维数组来表示,第i个学生第j 门课程的成绩可以用a(i,j)表示。其中 i(=1,2, 3,…,50)称为行下标, j(=1,2)称为列下标。 返回目录
返回目录
6.2
固定数组
固定数组也称为固定大小的数组,是指 数组元素的个数固定不变的数组。
6.2.1 6.2.2 6.2.3
数组的声明 数组的应用 字符串数组返回目录6.2.1 数组的声明
数组的声明应该包括以下信息: 数组名、维数、大小、类型以及作用范围。 有三种方法声明固定数组。 (1)建立公用数组,在模块的通用声明段中用Public语句声明数组。格式为: Public 数组名(<维数说明>)[As <类型>] (2)建立模块级数组,在模块的通用声明段用Private语句声明。格式为: Private| Dim 数组名(<维数说明>)[As <类型>] (3) 建立局部数组,在过程中用Private 语句声明数组。格式为: Dim | Private 数组名(<维数说明>)[As <类型>] 例如:下列数组声明可以出现在模块的通用声明段或过程中。 Dim Number(5) As Integer Dim Price(20) As Double 为建立公用数组,直接用Public取代Dim。
对于二维数组则通过双重循环输入,其中外围循环控制行数, 内层循环控制每行元素个数。 例:向一个二维数组输入数据。 对一维数组,用一个循环可完成,与输入过程一样,对二维数 组则可用双重循环,输出时注意打印格式,如:
Dim a(4, 4) As Integer For I = 1 To 4 For j = 1 To 4 a(I, j) = I * j Next j Next I „给数组元素赋值 For I = 1 To 4 Print Tab(5); For j = 1 To 4 Print a(I, j); " "; Next j Print Next I „输出各数组元素值
6.2.2 数组的应用
1. 一维数组的应用 一维数组元素只有一个下标,只要下标值确定,元素在数组中的位置也就确定了。数 学上形如数列{ai}表示的数据均可用一维数组来处理。 【例6-2-1】使用数组计算1+2+3+…+100的值 Option Base 1 ' 设置下界自动为1 Private Sub Command1_Click() Dim a(100) As Integer Dim s As Integer For i = 1 To 100 a(i) = i ' 数组的产生 Next i s = 0 ' 累加器初始化 For i = 1 To 100 s = s + a(i) Next i Print "1+2+3+…+100="; s End Sub
关于下标变量的规定: (1)下标变量在程序中的用法和简单变量的用法一样。 (2)由于程序必须写在一行上,而且字符一样大小, 所以下标要放在小括号内,如a(3)不能写成 a3, 后者将被当作简单变量处理。 (3) 下标可以是常数、数值变量、算术表达式甚至下 标变量。下标中如含有变量,使用前应给该变量提 前赋值。例如:当i=5时,a(i)表示a(5),a(i+3) 表示a(8);如果b(3)=5,则a(b(3))表示a(5)。 (4)下标变量的下标值应该为整数,否则计算机将对 下标进行自动取整。如a(3.2)将被视为a(3) ,a(3.7)将被视为a(-4)。
如:Dim a%(5), b!(6) Dim a(5) as Integer ,Dim b(6) as Single (4)数组的下界必须小于上界。 测试上界或下界用以下函数。
LBound(数组[,维])
Ubound(数组[,维]) 例:DIM a(4)
返回值为数组的上界
返回值为数组的下界
相关文档
最新文档