我正在尝试自定义WinForms数据库应用程序上的控件。
到目前为止,我只尝试使用以下代码自定义标签和按钮:
namespace MyNamespace
{
public class CMSLabel : Label
{
private Color cmsLabelBackColor = aSystem.LabelBackColor;
public CMSLabel()
{
this.BackColor = cmsLabelBackColor;
}
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public new Color BackColor
{
get { return cmsLabelBackColor; }
set { }
}
}
public class CMSButton : Button
{
private Color cmsButtonColor = aSystem.ButtonColor;
public CMSButton()
{
base.BackColor = cmsButtonColor;
}
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public new Color BackColor
{
get { return cmsButtonColor; }
set { }
}
}
}
Button控件完美运行,但Label控件根本没有显示BackColor,但我为每种控件类型使用了相同的代码。谁能发现我做错了什么?
答案 0 :(得分:2)
你必须改变“基础”颜色:
public CMSLabel()
{
base.BackColor = cmsLabelBackColor;
}
答案 1 :(得分:1)
在CMSButton中设置 base .BackColor,但在CMSLabel中设置 this .BackColor,它在setter中没有代码。