Blo*_*ard 2 .net c# user-controls winforms
当我右键单击BackColor属性网格中的自定义UserControl 属性,然后单击重置,我希望该BackColor属性更改为(例如)Color.LightGreen,并且属性值显示为非粗体,以指示它是默认值值.
目前,我知道我可以这样做:
public override void ResetBackColor() {
BackColor = Color.LightGreen;
}
Run Code Online (Sandbox Code Playgroud)
在重置时将其设置为LightGreen是有效的.但它仍然在属性网格中显示为粗体,表示当前值不是默认值.
我注意到Control该类具有静态只读属性DefaultBackColor.不幸的是,因为它是静态的,我无法覆盖它.
有没有办法获得我想要的所有功能?
您可以使用以下DefaultValue属性来实现此目的:
public UserControl1()
{
InitializeComponent();
this.BackColor = Color.LightGreen;
}
[DefaultValue(typeof(Color), "LightGreen")]
public override Color BackColor
{
get
{
return base.BackColor;
}
set
{
base.BackColor = value;
}
}
Run Code Online (Sandbox Code Playgroud)