有些控件,例如 Visual Basic 提供的 OLE 控件,允许在设计时编辑控件的内容。设置 UserControl 对象的 EditAtDesignTime 属性为 True 即可允许该特性。
如果某个容器支持此特性,那么在设计时,当开发者右键单击控件实例时,容器将在上下文菜单中添加一个“编辑”菜单项。
控件的使用者可以通过右键单击控件得到“上下文”菜单,然后单击“编辑”。该控件将被激活,并将象运行时那样活动。
这样就可以制作出具有可视特性的控件,例如允许用户设置行列尺寸,或者以直接键入的方式设置子控件属性值。通过检查 AmbientProperties 对象的 UserMode 属性,可以判断控件是否运行在设计时。在设计时该属性值是 False。
控件只在被选定时才保持活动。当开发者单击另外一个控件时,原控件将会成为非活动的。要再激活控件,开发者必须从上下文菜单选择“编辑”。
注意 当控件以这种方式被激活后,UserControl 对象的事件将会发生,所以控件可以正常操作,但是控件不能产生任何事件。RaiseEvent 方法被简单地忽略;它不会导致任何错误。