【发布时间】:2009-06-30 19:38:16
【问题描述】:
我正在尝试创建一个自定义按钮,其中前景色始终为深红色,背景色始终为青色。丑陋的配色方案,但我只是想得到它,这样我就可以创建大量具有一致配色方案的控件,而无需单独设置每个控件。以下是我对按钮的编码方式:
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;
}
}
}
当我将自定义按钮放到表单上时,背景是常规按钮颜色,文本是深红色。如果我运行该应用程序,它也是一样的。现在,如果我尝试在属性窗口中修改前景色或背景色,它们会立即返回到我设置的默认值(深红色、青色),然后当我运行我的应用程序时它们也会以这种方式显示。如何让控件在设计器中和运行时正确显示?
【问题讨论】: