ContainedControls 类
ContainedControls对象是一个集合,公开放置在设置为控件容器的UserControl实例内部的控件。UserControl的作者使用此集合在运行时枚举或检查这些组成控件。UserControl的作者只能看到消费者添加的内容——作者本人在设计时放置在UserControl上的控件不属于此集合。
此集合为只读:不能通过它添加或移除项,索引器仅返回现有控件。要使用它,UserControl的ControlContainer属性必须已设计时设置为True。
vb
' 在承载其他控件的UserControl内部。
Private Sub UserControl_Resize()
Dim ctl As Object
For Each ctl In UserControl.ContainedControls
' 在UserControl中布局每个消费者放置的控件。
Next ctl
End Sub成员
Count
返回集合中的控件数量。
语法:object.Count
- object
- 必需 求值为ContainedControls对象的对象表达式。
值为Long。Item的有效索引范围从1到Count。
Item
按从一开始的位置从集合中返回单个控件。
语法:object.Item( index )
- object
- 必需 求值为ContainedControls对象的对象表达式。
- index
- 必需 给出要返回的控件从一开始位置的Long。必须在1和Count之间;否则将发生错误。
Item是ContainedControls的默认成员,因此以下两行等效:
vb
Set ctl = UserControl.ContainedControls.Item(1)
Set ctl = UserControl.ContainedControls(1)结果类型为Object,因为消费者可能放置了任何类型的控件。使用TypeName或TypeOf在绑定到特定控件属性前发现具体类型。
For Each 迭代
ContainedControls对象可以使用For Each...Next语句进行迭代,按消费者添加的顺序依次产生每个控件。隐藏的_NewEnum成员提供枚举器,不从用户代码直接调用。
vb
Dim ctl As Object
For Each ctl In UserControl.ContainedControls
Debug.Print TypeName(ctl)
Next ctl