VB控件数组索引号在哪里设置

VB6.0控件数组索引号是在空间的属性窗口的Index 属性处设置。

Index 属性(控件数组),返回或设置唯一地标识控件数组中一个控件的编号。仅当控件是控件数组的元素时是有效的。

虽然缺省状态下 Visual Basic 分配下一个可用的整数作为控件数组中新的控件的 Index 的值,但也可以改变该分配值并跳过一些数。也可以为数组中的第一个控件的

Index 设一个非 0 的整数。如果在代码中引用一个 Index 的值而在控件数组中没有所标识的控件,那么将产生一个Visual Basic 运行时错误。

Index 属性区分控件数组中的元素。当数组中的一个控件识别了一个事件时,Visual Basic将调用公***事件过程并传递一个参数(Index 属性的值),分辨是哪个控件识别事件。

例如,Number_Click 事件过程的第一行代码是这样的:

Private Sub Number_Click (Index As Integer)

如果 Number(0) 识别事件,则 Visual Basic 将 0 作为 index 参数传递,而如果 Number(1) 识别事件,则 Visual Basic 将 1 作为 index 参数传递。

Index 属性示例

该例子开始时有两个 OptionButton 控件,并在每次单击 CommandButton 控件时在窗体中加入一个新的OptionButton。当单击一个 OptionButton 时,FillStyle

属性被设置并且画一个新的圆。要试用此例,将下面的代码粘贴到具有两个 OptionButton 控件、一个 CommandButton、以及一个大的 PictureBox

控件的窗体的声明部分之中。将两个 OptionButton 控件的 Name 属性都设置为 Option1

以创建一个控件数组。

Private Sub Option1_Click(Index As Integer)

Dim H, W ? '声明变量。

Picture1.Cls ? '清除图片。

Picture1.FillStyle = Index ? '设置 FillStyle。

W = Picture1.ScaleWidth / 2 ? '获取圆的大小。

H = Picture1.ScaleHeight / 2

Picture1.Circle (W, H), W / 2 ? '画圆。

End Sub

Private Sub Command1_Click()

Static MaxIdx ? '数组中的最大索引值。

If MaxIdx = 0 Then MaxIdx = 1 ? '预置 MaxIdx。

MaxIdx = MaxIdx + 1 ? '索引值增加 1 。

If MaxIdx > 7 Then Exit Sub ? '在窗体中放置八个按钮。

Load Option1(MaxIdx) ? '在数组中创建新的项。

'在前一个按钮下面设置新选项按钮的位置。

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

Option1(MaxIdx).Visible = True ? '使新的按钮可见。

End Sub