当我通过设计器向表单添加控件时,并非控件的所有属性都出现在设计器代码中。例如,当我添加ListBox
时,UseWaitCursor
属性未出现在设计器代码中,除非它设置为True
。当我将其更改为False
时,它会从设计器代码中消失,这使我认为属性以某种方式具有默认值,并且如果保留默认值,则不会出现在设计器代码中。
有人可以帮助我了解设计师的工作方式以及跟踪所有这些内容。我问的原因是我正在编写一个扩展第三方ActiveX控件的类,我打算在运行时动态初始化它。我正在浏览设计器代码(当通过设计器添加第三方控件时),并且很多属性都没有出现在那里。
答案 0 :(得分:2)
这是通过[DefaultValue]属性完成的。 Control.UseWaitCursor属性看起来类似于:
[DefaultValue(false)]
public bool UseWaitCursor
{
// etc..
}
因此,如果在“属性”窗口中将值保留为False,则设计人员知道它不应在粗体中显示该值,并且不必将属性赋值放在InitializeComponent中( )方法,因为默认已经很好。 ActiveX控件肯定会将很多属性设置为默认值。