关于控件数组

Old123 2004-07-26 07:08:32
我今天碰到了“控件数组”,不知为何物,更不知如何使用。请诸位大虾指教。
...全文
119 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Andy__Huang 2004-07-26
  • 打赏
  • 举报
回复
呵呵﹗看樓上吧﹐已經說得很清楚啦﹗
zyl910 2004-07-26
  • 打赏
  • 举报
回复

使用控件数组


控件数组是一组具有共同名称和类型的控件。它们的事件过程也相同。一个控件数组至少应有一个元素,元素数目可在系统资源和内存允许的范围内增加;数组的大小也取决于每个控件所需的内存和 Windows 资源。在控件数组中可用到的最大索引值为 32767。同一控件数组中的元素有自己的属性设置值。常见的控件数组的用处包括实现菜单控件和选项按钮分组。

注意 Visual Basic 包括了在运行时动态地将未引用的控件添加到 Controls 集合中的能力。本主题仅指在设计时通过将一个控件剪切和粘贴到窗体上添加的引用控件。有关在运行时添加控件的详细信息,请参阅参考主题“Add 方法(Controls 集合)”和“Add 方法(Licenses 集合)”。

为何使用控件数组
在设计时,使用控件数组添加控件所消耗的资源比直接向窗体添加多个相同类型的控件消耗的资源要少。当希望若干控件共享代码时,控件数组也很有用。例如,如果创建了一个包含三个选项按钮的控件数组,则无论单击哪个按钮时都将执行相同的代码。

若要在运行时创建一个控件的新实例,则新控件必须是控件数组的成员。使用控件数组时,每个新成员继承数组的公共事件过程。

使用控件数组机制是不可能在运行时创建新控件的,因为每个新控件都继承为数组编写好的事件过程。例如,如果窗体上有若干文本框,而且每个文本框都接受一个日期数值,则可创建一个控件数组,使所有文本框共享同一个合法性检查代码。

示例应用程序:Calc.vbp
图 7.3 所示的 Calculator 示例应用程序(列在 Samples 目录中)包含两个控件数组─ 数字按钮和操作按钮。

图 7.2 控件数组示例



下表列出 Calculator 示例中控件数组的 Name 和 Index 属性值。

数字 (n) 操作符 (n)
0 = Number(0) + = Operator(1)
1 = Number(1) – = Operator(2)
2 = Number(2) X = Operator(3)
3 = Number(3) / = Operator(4)
4 = Number(4) = = Operator(5)
5 = Number(5)
6 = Number(6)
7 = Number(7)
8 = Number(8)
9 = Number(9)


请注意示例是如何使用 object(index) 语法引用每个控件的。在创建控件时指定索引值。实际上,在设计时为一个控件指定任意的索引,这将使控件成为数组的一部分。

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 参数传递。与索引值不同,对于 Number(0) 到 Number(9) 已执行的其余 Number_Click 代码都是相同的。
helanshan 2004-07-26
  • 打赏
  • 举报
回复
比如命令按钮,创建控件数组时,系统给每个按钮赋一个索引号(index),创建后,不管单击哪个命令按钮,都会调用同一个事件过程。。
helanshan 2004-07-26
  • 打赏
  • 举报
回复
向窗体添加控件--复制粘贴控件,提示是否创建控件数组,确定就可以了,可以任意添加。。

741

社区成员

发帖
与我相关
我的任务
社区描述
VB 版八卦、闲侃,联络感情地盘,禁广告帖、作业帖
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧