C# 如何使用自定义DefaultBackColor创建UserControl?
当我在属性网格中右键单击自定义UserControl的C# 如何使用自定义DefaultBackColor创建UserControl?,c#,.net,winforms,user-controls,C#,.net,Winforms,User Controls,当我在属性网格中右键单击自定义UserControl的BackColor属性,然后单击“重置”时,我希望BackColor属性更改为(例如)Color.LightGreen,属性值显示为非粗体,以指示它是默认值 目前,我知道我可以做到: public override void ResetBackColor() { BackColor = Color.LightGreen; } 只要重置时将其设置为浅绿色即可。但它仍然以粗体显示在属性网格中,表明当前值不是默认值 我注意到控件类有一个静
BackColor
属性,然后单击“重置”时,我希望BackColor
属性更改为(例如)Color.LightGreen
,属性值显示为非粗体,以指示它是默认值
目前,我知道我可以做到:
public override void ResetBackColor() {
BackColor = Color.LightGreen;
}
只要重置时将其设置为浅绿色即可。但它仍然以粗体显示在属性网格中,表明当前值不是默认值
我注意到控件
类有一个静态只读属性,DefaultBackColor
。不幸的是,由于它是静态的,我无法覆盖它
有什么方法可以获得我想要的所有功能吗?您可以使用以下属性来实现这一点:
public UserControl1()
{
InitializeComponent();
this.BackColor = Color.LightGreen;
}
[DefaultValue(typeof(Color), "LightGreen")]
public override Color BackColor
{
get
{
return base.BackColor;
}
set
{
base.BackColor = value;
}
}