与容器交互作用

如本章开始部分的“控件创建术语”中所述,控件实例从来都不是单独存在的。它们总是被放置在容器对象上,例如 Visual Basic 窗体。

容器也提供一部分额外的属性、方法和事件,它们看上去象是控件的一部分。这将在相关主题“理解容器的扩展对象”中加以讨论。可以使用扩展对象的 Parent 属性来访问控件所在容器的属性和方法。

还可以通过 UserControl 对象的环境属性来得到容器的有关信息。该属性返回的对象提供了容器的属性设置信息,例如 BackColor,从而使控件的外观能够与容器保持一致。AmbientProperties 对象将在“使用 AmbientProperties 对象与容器保持一致”中讨论。

注意 只有控件在容器上定位后才能使用 AmbientProperties 和扩展对象。因此,这些对象在 UserControl 的 Initialize 事件中还不能使用。在 InitProperties 或 ReadProperties 事件发生之后,控件实例才被定位。

容器是有区别的

控件依赖容器的结果是:某些特性不一定能够在所有的容器中使用。许多 ActiveX 控件特性需要控件所在的容器支持,如果容器不提供所需要的支持,那么这些特性将成为无效的。

以下是 Visual Baisc 窗体提供的特性,但并非所有容器都支持它们:

相关主题