C# 以编程方式更改字体

C# 以编程方式更改字体,c#,C#,C#不喜欢以下代码: private void btnSizeRandom_Click(object sender, EventArgs e) { btnSizeRandom.Font.Bold = true; btnother.Font.Bold = false; } 有没有办法通过编程实现这一点?字体的实例是不可变的。您需要构造一个新的Font,并将其分配给Font属性。Font类具有用于此目的的各种构造函数;他们复制另一个实例并在这个过程中更改样式。+1并且只是为了完善伟大的答案

C#不喜欢以下代码:

private void btnSizeRandom_Click(object sender, EventArgs e)
{
  btnSizeRandom.Font.Bold = true;
  btnother.Font.Bold = false;
}

有没有办法通过编程实现这一点?

字体的实例是不可变的。您需要构造一个新的
Font
,并将其分配给
Font
属性。
Font
类具有用于此目的的各种构造函数;他们复制另一个实例并在这个过程中更改样式。

+1并且只是为了完善伟大的答案:btnSizeRandom.Font=新字体(btnSizeRandom.Font,FontStyle.Bold)@SwDevMan81此外,您还需要:new system.Drawing.Font(btnSizeRandom.Font,FontStyle.Regular);
    private static Font ChangeBoldStyle(Font org, bool bold) {
        FontStyle style = org.Style;
        if (bold) style |= FontStyle.Bold;
        else style &= ~FontStyle.Bold;
        return new Font(org, style);
    }