2009-05-24 194 views
2

我希望細節視圖中的所有標籤都是粗體。我創建了一個簡單的自定義標籤控件,強制字體變粗。這對我來說有代碼味道的感覺。我並不關心開發人員能夠自定義自定義控件(baseDetailLabel)。我只是想強制一個應用程序廣泛的標準細節標籤(他們必須是粗體)。在控件初始化時強制字體樣式還是應該用另一種方法做這件事?我確實希望設計師可以看到這種風格。控制自定義控件的渲染

public class BaseDetailLabel : System.Windows.Forms.Label 
{ 
    public BaseDetailLabel() 
    { 
     System.Drawing.Font f = new Font(this.Font,FontStyle.Bold); 
     this.Font = f; 
    } 
} 

回答

2

從描述我認爲你也有標籤,你不想大膽。在這種情況下,單獨的控制類似乎是最好的方式。

簡單的構造函數方法不會阻止覆蓋,只是設置一個初始值。我認爲那就是你想要的。要強制加粗,您必須重寫OnPaint方法。

關於氣味:它不是幻想,但與領土。在沒有好的(更好的)攻擊方式的情況下,你正在執行一個樣式規則。除非你想建立一個完整的Style系統。

2

這應該沒問題。不過,我可能會提醒你,你可能需要在某處放置字體。字體是需要處理的圖形對象 - 而且我不確定是否銷燬標籤會自動爲您做。

+0

使用using語句更新它。 – 2009-05-24 23:28:52