2009-05-24 150 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