当我右键单击属性网格中的自定义UserControl的BackColor
属性,然后单击重置,我希望BackColor
属性更改为(例如)Color.LightGreen
,并且属性值显示为非粗体,表示它是默认值。
目前,我知道我可以这样做:
public override void ResetBackColor() {
BackColor = Color.LightGreen;
}
在重置时将其设置为LightGreen。但它仍然在属性网格中显示粗体,表示当前值不是默认值。
我注意到Control
类有一个静态只读属性DefaultBackColor
。不幸的是,由于它是静态的,我无法覆盖它。
有没有办法获得我想要的所有功能?
答案 0 :(得分:7)
您可以使用DefaultValue
属性
public UserControl1()
{
InitializeComponent();
this.BackColor = Color.LightGreen;
}
[DefaultValue(typeof(Color), "LightGreen")]
public override Color BackColor
{
get
{
return base.BackColor;
}
set
{
base.BackColor = value;
}
}