1

我正在尝试自定义 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,但我为每种控件类型使用了相同的代码。谁能发现我做错了什么?

4

2 回答 2

2

您必须更改“基础”颜色:

public CMSLabel()
{
  base.BackColor = cmsLabelBackColor;            
}
于 2012-09-05T15:02:10.997 回答
1

在 CMSButton 中设置基本.BackColor,但在 CMSLabel 中设置.BackColor,它在 setter 中没有代码。

于 2012-09-05T15:01:25.523 回答