Control的默认属性

时间:2012-10-05 22:13:06

标签: c# winforms visual-studio-2010 controls

当我通过设计器向表单添加控件时,并非控件的所有属性都出现在设计器代码中。例如,当我添加ListBox时,UseWaitCursor属性未出现在设计器代码中,除非它设置为True。当我将其更改为False时,它会从设计器代码中消失,这使我认为属性以某种方式具有默认值,并且如果保留默认值,则不会出现在设计器代码中。

有人可以帮助我了解设计师的工作方式以及跟踪所有这些内容。我问的原因是我正在编写一个扩展第三方ActiveX控件的类,我打算在运行时动态初始化它。我正在浏览设计器代码(当通过设计器添加第三方控件时),并且很多属性都没有出现在那里。

1 个答案:

答案 0 :(得分:2)

这是通过[DefaultValue]属性完成的。 Control.UseWaitCursor属性看起来类似于:

[DefaultValue(false)]
public bool UseWaitCursor
{
   // etc..
}

因此,如果在“属性”窗口中将值保留为False,则设计人员知道它不应在粗体中显示该值,并且不必将属性赋值放在InitializeComponent中( )方法,因为默认已经很好。 ActiveX控件肯定会将很多属性设置为默认值。