您现在的位置:首页 >> 网络教学 >> 数组 >> 内容

控件数组

时间:2009-6-19 8:48:53 点击:5098

 控件数组

一、控件数组的概念

当界面上需要若干个控件执行大致相同的操作时,控件数组很有用。控件数组是由一组类型相同的控件组成的数组,这些控件共用一个相同的控件名,共享相同事件过程。例如假定一个控件数组含有3个命令按钮,则不管单击那一个按钮,都会调用同一个Click事件过程。控件数组一方面使得程序简洁、令代码易于维护,另一方面能使程序具有灵活性。科学地利用控件数组可使编程工作的效率更高。

控件数组中每一个元素都有唯一与之相关联的下标,或称索引(Index)。下标值由Index属性指定。由于一个控件数组中各个元素共享Name(名称)属性,所以Index属性与控件数组的某个元素有关。也就是说,控件数组的名字由Name属性指定,而数组的每个元素由Index属性指定。与普通数组一样,控件数组的下标也放在圆括号中,如Option(0)

为了在事件过程中区分控件数组中的各个元素,VB会把表示元素的下标值Index传送给事件过程。为此,VB会在事件过程中加入了一个下标参数Index。例如在窗体上建立了包含两个命令按钮的控件数组cmdTest,其Click()事件过程为:

Private Sub cmdTest_Click(Index As Integer)

  

End Sub

在事件过程中通过判断参数Index值即可知道用户按下了哪个按钮,因而也就可以对该按钮编程。

例如:

Private Sub cmdTest_Click(Index As Integer)

  

   If Index=1 Then

       Print "你按下的是第2个按钮。"

   End If

  

End Sub

上例表示若用户单击了Index属性为1(即第二个)按钮则在窗体上打印“你按下的是第2个按钮”的信息。

二、控件数组的建立和应用

控件数组的建立与一般数组的声明不同,通常有以下两种方法:

1.在设计阶段于窗体界面上进行交互式界面设计,通过相同的Name属性值来建立,其步骤如下:

1)在窗体上画出作为数组元素的第一个控件。

2)单击要包含到数组中的某个控件,将其激活。

3)在属性窗口选择Name(名称)属性,并在设置框中键入控件的名称。

4)右击该控件,在快捷菜单上选择“复制”,然后再一次右击,并选择“粘贴”,此时VB会弹出一个对话框,如图5-7,询问是否要建立控件数组。此时单击对话框中的“是”,确认建立控件数组。重复“粘贴”操作,直到所需数组元素个数为止。

5-7 确认创建控件数组对话框

控件数组建立以后,只要改变其中某个控件的Name属性值,就能把该控件从控件数组中删除。

[5-10]建立含有3个命令按钮的控件数组,当单击某个命令按钮时,分别执行不同的操作。

建立步骤如下:

1)在窗体上建立一个命令按钮,把其Name属性设为cmdTest,然后用编辑菜单中的复制命令和粘贴命令复制两个命令按钮。

2)把3个命令按钮的Caption属性分别设为“按钮1”,“按钮2”和“退出”。

3)双击任一个命令按钮,在代码窗口键入如下事件过程:

Private Sub cmdTest_Click(Index As Integer)

    Select Case Index

        Case 0

            Print "单击的是第一个按钮"

        Case 1

            Print "单击的是第二个按钮"

        Case Else

            End

    End Select

End Sub

上述过程以Select语句判断控件数组的Index属性值决定单击某个命令按钮时所执行的操作。运行结果如图5-8所示。

5-8 创建控件数组例一

2.另一种添加、删除控件数组元素的方法是在程序代码中使用LoadUnLoad方法,具体步骤如下:

1)在窗体上画出作为数组元素的控件,设置其Name(名称)属性,并将Index属性值置为0,作为第一个控件。

2)用Load方法添加控件数组中的其他元素,格式为:

Load 控件数组名(i

其中,i为第i个控件数组元素下标(即其Index值)。

3)如果需要,可用“UnLoad 控件数组名(i)”删除第i个已添加的控件数组元素。

[5-11]在窗体上建立两个命令按钮cmdTest1cmdTest2Caption属性分别设为LoadUnLoad;再建立一个包含两个单选按钮的控件数组,名为Opt。编写事件过程如下:

Private Sub cmdTest1_Click()

    Static MaxIdx As Integer

    MaxIdx = MaxIdx + 1

    If MaxIdx > 7 Then Exit Sub

    Load Opt(MaxIdx)

    Opt(MaxIdx).Caption = "选项" & MaxIdx

    Opt(MaxIdx).Top = Opt(MaxIdx - 1).Top + 360

    Opt(MaxIdx).Visible = True

End Sub

Private Sub cmdTest2_Click()

    Static Idx

    If Idx = 0 Then Idx = 8

    Idx = Idx - 1

    If Idx < 2 Then Exit Sub

    Unload Opt(Idx)

End Sub

Private Sub Opt_Click(Index As Integer)

    Static m

    Select Case Index

        Case 0

            Print " 选项0";

        Case 1

            Print " 选项1";

        Case 2

            Print " 选项2";

        Case 3

            Print " 选项3";

        Case 4

            Print " 选项4";

        Case 5

            Print " 选项5";

        Case 6

            Print " 选项6";

        Case 7

            Print " 选项7";

    End Select

    m = m + 1

    If m Mod 4 = 0 Then Print  '每行显示4

End Sub

事件过程cmdTes1_Click用来增加单选按钮,每单击一次命令按钮,用Load方法为控件数组Opt添加一个元素。新添加的元素位于原控件的下面,其Visible属性被设为TrueCaption属性设为“选项x”的形式。控件数组最大下标值为7,因此最多可以增加到8个(07)单选按钮,超过8个后,将通过Exit Sub语句退出该事件过程。过程cmdTest2_ClickUnLoad方法删除Opt控件数组元素。过程Opt_Click根据每个单选按钮的Index属性值,输出不同的字符串。程序执行情况如图5-9所示。

5-9 创建控件数组例二

作者:Admin  
  • 上一篇:动态数组
  • 下一篇:数组的总结
  • 本类热门
    本类推荐
    本类固顶
    • 没有
  • VB程序设计学习网站(赣南师范学院) © 2008 版权所有 All Rights Reserved.
  • 地址:江西省赣州市经济技术开发区 赣南师范学院数学与计算机科学学院 邮政编码:341000
    Email:ZQ188@163.com 技术支持QQ:87319633 移ICP备10086号
  • GnsySjxy! V2.4