.net WinForms:在运行时从标签更改字体样式(下划线)的正确方法是什么?

.net WinForms:在运行时从标签更改字体样式(下划线)的正确方法是什么?,.net,winforms,.net,Winforms,C#:运行时从标签更改字体样式(下划线)的正确方法是什么 到目前为止,我了解到如果您想在运行时从标签(主要是所有字体属性)更改字体相关属性,您必须使用 lblName.Font = new Font(... etc. etc. 是否有一个快捷方式,但只指定一个新的字体样式,如FontStyle.Underline 或 我是否必须继续使用“new Font()”方法并分配所有字段,以便在我的标签下面加下划线?怎么样(我使用的是.Net Framework 2.0)好的,这适用于Web应用程序。

C#:运行时从标签更改字体样式(下划线)的正确方法是什么

到目前为止,我了解到如果您想在运行时从标签(主要是所有字体属性)更改字体相关属性,您必须使用

 lblName.Font = new Font(... etc. etc.
是否有一个快捷方式,但只指定一个新的字体样式,如FontStyle.Underline

我是否必须继续使用“new Font()”方法并分配所有字段,以便在我的标签下面加下划线?

怎么样(我使用的是.Net Framework 2.0)好的,这适用于Web应用程序。在表单应用程序中,它是只读的

lblName.Font.Underline=true

定义如下:

    //
    // Summary:
    //     Gets or sets a value that indicates whether the font is underlined.
    //
    // Returns:
    //     true if the font is underlined; otherwise, false. The default value is false.
    [DefaultValue(false)]
    [NotifyParentProperty(true)]
    public bool Underline { get; set; }
诉诸

this.Font=新字体(this.Font、FontStyle.Underline)

适用于Win32窗体。

您的操作方式:

this.Font = new Font(this.Font, FontStyle.Underline);

这是正确的。原因是字体是一种密封且不可变的类型(按设计)。当在.NET1中引入时,这似乎有点奇怪,但随着今天对函数式编程、并发性和不变性的强调,这种风格被更多地看到。也许是这样做的,因为控件继承其容器的字体,并且跟踪单个字体属性更改比跟踪整体字体更改要复杂得多

无法运行,因为font.underline是只读属性。是否确定?我在发布之前就试过了,结果成功了。你用的是什么版本?哦,没关系。这适用于Web Ap,而不是Windows Ap。您可能需要指定您正在使用的想要的窗口(Winforms或WPF)。这就是我所想到的。我不认为那太糟糕。
//Bold.
    label1.Font = new Font(label1.Font.Name, 12, FontStyle.Bold); 

//Bold With Underline.
    label1.Font = new Font(label1.Font.Name, 12, FontStyle.Bold | FontStyle.Underline); 

//Bold with Underline with Italic.
    label1.Font = new Font(label1.Font.Name, 12, FontStyle.Bold | FontStyle.Underline | FontStyle.Italic);