当我右键单击属性网格中的自定义 UserControl 的 BackColor
属性,然后单击“重置”时,我希望将 BackColor
属性更改为(例如) Color.LightGreen
,并且属性值显示为非粗体,以指示它是默认值。
目前,我知道我可以做到这一点:
public override void ResetBackColor() {
BackColor = Color.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;
}
}
关于c# - 如何使用自定义 DefaultBackColor 制作 UserControl?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1187561/