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を設定します。これには、セッターにコードがありません。

于 2012-09-05T15:01:25.523 に答える