AmbientProperties 对象保持来自容器的环境信息,这些信息决定了容器内控件的行为。
说明
容器提供的环境属性可影响控件的行为。例如,BackColor 是一个标准的环境属性;容器指示控件在正常情况下如何设置自己的背景颜色属性。
AmbientProperties 对象的属性是容器的环境属性。这些属性是只读的。
有些环境属性是标准的,有些则是某些容器特有的。控件可访问非标准的环境属性,但是这样使控件只适用于某些容器。当前容器没有提供某个环境属性时,控件也应该能够处理这种情况。
编译控件后,Visual Basic 无法获知控件运行时能提供哪种特定容器的环境属性;因此特定容器环境属性的引用总是后期绑定的。
初始化事件产生时,AmbientProperties 对象不可用;但是 InitProperties 事件和 ReadProperties 事件产生时,此对象可用。
AmbientProperties 对象具有若干标准属性:
BackColor 属性,颜色值,它包含推荐使用的所含控件的内部颜色。如果容器不支持该属性,Visual Basic 提供的缺省值为 0x80000005:这是窗口背景的系统颜色。
DisplayAsDefault 属性,布尔值,它指定控件是否为缺省控件。如果容器不支持该属性,Visual Basic 提供的缺省设置值为 False。
DisplayName 属性,字符串,它包含控件自己显示的名称。如果容器不支持该属性,Visual Basic 提供的缺省值是空字符串:" "。
Font 属性,Font 对象,它包含推荐使用的控件所含的字体信息。如果容器不支持该属性,Visual Basic 提供的缺省值为 MS Sans Serif 8。
ForeColor 属性,颜色值,它包含推荐使用的控件所含的前景色。如果容器不支持该属性,Visual Basic 提供的缺省值为 0x80000008:这是窗口文本的系统颜色。
LocaleID 属性,长整型数值,它指定用户的语言和国家/地区。如果容器不支持该属性,Visual Basic 提供的缺省值是当前的系统区域 ID。
MessageReflect 属性,布尔值,它指示控件是否支持消息返回。如果容器不支持该属性,Visual Basic 提供的缺省值为 False。
Palette 属性,Picture 对象,其调色板指定推荐使用的控件所含调色板。
RightToLeft 属性,布尔值,它指示双向系统上文本的显示方向及控件的外观。如果容器不支持该属性,Visual Basic 提供的缺省值为 False。
ScaleUnits 属性,字符串,它包含容器使用的坐标单位的名称。如果容器不支持该属性,Visual Basic 提供的缺省值是空字符串:" "。
ShowGrabHandles 属性,布尔值,它指定控件是否处理抓取处理的显示。如果容器不支持该属性,Visual Basic 提供的缺省值为 True。
ShowHatchings 属性,布尔值,它指定容器是否处理阴影的显示。如果容器不支持该属性,Visual Basic 提供的缺省值为 True。
SupportsMnemonics 属性,布尔值,它指示容器是否处理控件的访问键。如果容器不支持该属性,Visual Basic 提供的缺省值为 False。
TextAlign 属性,枚举,它指定文本对齐方式。如果容器不支持该属性,Visual Basic 提供的缺省值为 0 - General Align。
UserMode 属性,布尔值,它指定环境是处于设计模式还是处于最终用户模式。如果容器不支持该属性,Visual Basic 提供的缺省值为 True。
UIDead 属性,布尔值,它指定用户界面是否为不响应的。如果容器不支持该属性,Visual Basic 提供的缺省值为 False。
注意 当访问AmbientProperties对象的Font属性时,没有得到对容器字体的引用,而是得到一个对字体的复制(clone)。
这样做的原因是每当容器中增加一个控件实例时,通常用AmbientProperties.Font来初始化控件的字体。如果提供对字体自身的一个引用,那么控件字体的改变同样也使容器的字体改变。
如果由于某种原因控件需要对容器字体的引用时,可以通过UserControl对象的 Parent属性访问容器得到它。