VB Controls(index) 控件集合 index取值规则?

shanjiapeipei 2011-12-14 06:00:43
VB Controls(index) 控件集合 index取值规则?
比如说,在一个窗体上添加了很多种控件,那么每个控件都应该分配一个index值,比如controls(1)代表Command1,controls(2)代表textbox1 ,control(3)代表Command2等等,那么vb是按照什么规则给这些控件分配index值的呢?
我自己试了一下,大概和控件的添加顺序、控件的类型有关,但具体是什么规则不太清楚。
有知道的高手,给解答一下。
...全文
526 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiger_Zhao 2011-12-15
  • 打赏
  • 举报
回复
集合成员的次序通常就是假如集合的次序,你可以用记事本打开 Form1.frm 文件,参考一下 Begin VB.Form Form1 到 End 之间的定义次序。

不过这不是你需要关心的,Controls(index) 只不过是提供了一种按序号遍历集合的方法,不要预期哪个 Index 和哪个控件关联。
chinaboyzyq 2011-12-15
  • 打赏
  • 举报
回复
[Quote=引用楼主 MSDN:]
Controls集合

一个集合,其元素代表部件中的控件。 Controls集合的Count属性用于表明集合中的控件数量,而其Item方法则返回集合中的一个成员。

语法

object.Controls.Count

object.Controls(index)

Controls 集合的语法包括下述部分:

部分 描述
Object 一个对象表达式,其值为“应用于”列表中的对象。
Index 一个整数,范围从0到Controls.Count – 1。


注意 如果部件是一个Visual Basic模块,如Form或UserControl,则在模块中编写代码时不必使用该对象表达式。然而,如果容器是一个编译后的ActiveX控件,如ToolBar控件,则必须使用该对象表达式。

说明

Controls集合枚举部件中装入的控件,可用于对这些控件的遍历。例如,可以用来改变一个Form中所有Label控件的BackColor属性。

Controls集合标识了一个内在的名为Controls的窗体级变量。如果省略了可选的object 占位符,则必须包括Controls关键字。不过,如果包括了object,则可以省略Controls关键字。例如,下面两行代码具有相同的作用:

MyForm.Controls(6).Top = MyForm.Controls(5).Top + increment
MyForm(6).Top = MyForm(5).Top + increment

可以将Controls(index)传递给一个参数指定为Controls类的函数。也可以使用它们的名称来访问成员。例如:

Controls("Command1").Top

可以在If语句中使用 TypeOf关键字,或使用TypeName函数来确定Controls集合中控件的类型。

注意 Controls 集合不是Visual Basic Collection类的成员。其属性和方法的集合要小于Collection对象的属性和方法的集合,而且用户不能创建该集合的实例。

[/Quote]
zfl2k 2011-12-15
  • 打赏
  • 举报
回复
vb手动添加的时候是相同名称的从0开始连续,可以随便修改,只要同名称的不重复即可
自己程序生成的,只要名称+index不重复即可
worldy 2011-12-14
  • 打赏
  • 举报
回复
只要名称不一样,index可以重复

也就是每个名称index都可以是从0开始的连续数
但index本身允许不连续

你可以command1(0)而下一个是command1(100)

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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