有时候,如果从“属性”窗口中对属性进行设置则过于复杂。属性可能是个对象,比如具有自己属性的 Font 对象。属性可能包含值的数组,甚至对象的集合(比如“工具栏”按钮的集合)。
例如,图 10.3 表明属性页将会如何寻找一个假设的 VirtualVelociraptor 控件的 Behavior 属性。对控件的各种行为使该页面允许在动画序列中添加单元或从中将单元删除。
图 10.3 对“属性”窗口过于复杂的属性
注意,只有与属性相关联的选项卡才会被显示出来。如果将此图与图 10.1 比较,就会注意到,在这幅图中,“属性页”对话框用到的页面尺寸要小一些。显示多个页面时应使用最大的页面尺寸。
注意 如“标准属性页”中所述,如果声明类型为 Font、OLE_COLOR 或 Picture 的属性,则 Visual Basic 自动将属性与 StandardFont、StandardColor 或 StandardPicture 页相关联。
要将属性页与单个属性相关联,请按照以下步骤执行:
Visual Basic 允许将多重属性与相同的属性页相关联。如果控件有多个属性使用同一属性页布局,或者,如果属性使用另一属性布局的一部分,就有可能要这样做。对后者可用 EditProperty 事件启动属性页的必要部分。
当用户单击与属性页相关联的属性的省略号按钮时,该页面除了正常接收事件外,还要接受 EditProperties 事件。在单击了属性的省略按钮后,可用 EditProperties 事件的 PropertyName 参数来识别这个属性。
EditProperties 事件提供机会来对属性页做大量事情,这取决于控件的本质以及所编辑的属性的复杂性。例如:
在某些情况中,可能不希望在属性窗口中显示属性。例如,如果为显示属性值而要求用一段时间来计算,则使用您的控件的开发人员会因消耗长时间访问属性窗口而厌烦。
在可由工具菜单访问的“属性”对话框中选定要压缩的属性。单击“高级” 按钮,复选“不在属性浏览器中显示”,然后单击“应用”。