2012-09-05 80 views
1

我想自定義WinForms數據庫應用程序上的控件。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控件的作品完美,但標籤控件沒有表現出背景色可言,但我已經使用了相同的每種控制類型的代碼。任何人都可以發現我做錯了什麼嗎?

回答

2

你必須改變 「基地」 顏色:

public CMSLabel() 
{ 
    base.BackColor = cmsLabelBackColor;    
} 
+0

再次感謝您拉爾斯:) – PJW

+0

PS。任何想法如何向自定義標籤添加不同的彩色邊框? – PJW

+1

@PJW WinForms在邊界真的很糟糕 - 它希望你堅持系統的東西。您可以嘗試覆蓋標籤的OnPaint方法,並在無邊界標籤上執行簡單的「e.Graphics.DrawRectangle(...)」。 – LarsTech

1

在CMSButton設置基地 .BackColor,但在CMSLabel設置這個 .BackColor,其在二傳沒有代碼。