我正在尝试创建一个自定义按钮,其中foreColor始终为深红色,backColor始终为青色 . 丑陋的配色方案,但我只是试图得到它,所以我可以用一致的配色方案创建大量的控件,而无需单独设置每个控件 . 这是我编码按钮的方式:
public partial class CustomButton : Button
{
private static Color _defaultForeColor = Color.Crimson;
private static Color _defaultBackColor = Color.Cyan;
public CustomButton()
{
InitializeComponent();
base.ForeColor = _defaultForeColor;
base.BackColor = _defaultBackColor;
}
public AutoScaleMode AutoScaleMode { get; set; }
[DefaultValue(typeof(Color), "Crimson")]
override public Color ForeColor
{
get { return base.ForeColor; }
set
{
base.ForeColor = _defaultForeColor;
}
}
[DefaultValue(typeof(Color), "Cyan")]
public override Color BackColor
{
get { return base.BackColor; }
set
{
base.BackColor = _defaultBackColor;
}
}
}
当我将自定义按钮放到我的表单上时,背景是常规按钮颜色,文本是深红色 . 如果我运行应用程序也是一样的 . 现在,如果我尝试修改属性窗口中的forecolor或backcolor,它们会回到我设置的默认值(深红色,青色),然后当我运行我的应用程序时它们也会显示出来 . 如何让控件在设计器和运行时正确显示?