C# 控制自定义控件的呈现

C# 控制自定义控件的呈现,c#,winforms,C#,Winforms,我希望详图视图中的所有标签都是粗体的。我创建了一个简单的自定义标签控件,强制字体为粗体。对我来说,这有一种代码气味的感觉。我不关心开发人员是否能够自定义自定义控件(baseDetailLabel)。我只想为细节标签实施一个应用程序范围的标准(它们必须是粗体的)。当控件初始化时强制使用字体样式是合适的还是应该用另一种方法?我确实希望设计师能看到这种风格 public class BaseDetailLabel : System.Windows.Forms.Label { public Ba

我希望详图视图中的所有标签都是粗体的。我创建了一个简单的自定义标签控件,强制字体为粗体。对我来说,这有一种代码气味的感觉。我不关心开发人员是否能够自定义自定义控件(baseDetailLabel)。我只想为细节标签实施一个应用程序范围的标准(它们必须是粗体的)。当控件初始化时强制使用字体样式是合适的还是应该用另一种方法?我确实希望设计师能看到这种风格

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

从描述中,我认为你也有你不想加粗的标签。在这种情况下,单独的控制类似乎是最好的方法

简单构造函数方法不会阻止重写,只是设置一个初始值。我想这就是你想要的。要强制加粗,必须重写OnPaint方法


关于气味:它不是花哨的,但它是随地域而来的。在没有好的(更好的)攻击方式的情况下,您正在强制执行样式规则。除非您想构建一个完整的样式系统。

这应该可以。但是,我可能会提醒您,您可能需要在某个地方处置字体。字体是需要处理的图形对象,我不确定销毁标签是否会自动为您处理。

使用using语句更新了它。