Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用自定义DefaultBackColor创建UserControl?_C#_.net_Winforms_User Controls - Fatal编程技术网

C# 如何使用自定义DefaultBackColor创建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; } 只要重置时将其设置为浅绿色即可。但它仍然以粗体显示在属性网格中,表明当前值不是默认值 我注意到控件类有一个静

当我在属性网格中右键单击自定义UserControl的
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;
    }
}