如何在运行时将文本框的文本设置为粗体?

我使用的Windows窗体,我有一个文本框,我偶尔会喜欢使文本粗体,如果它是一个特定的值。

如何在运行时更改字体特征?

我看到有一个名为textbox1.Font.Bold的属性,但这是一个Get only属性。

字体本身的粗体属性是只读的,但文本框的实际字体属性不是。 您可以将文本框的字体更改为粗体,如下所示:

textBox1.Font = new Font(textBox1.Font, FontStyle.Bold); 

然后再回来:

  textBox1.Font = new Font(textBox1.Font, FontStyle.Regular); 

根据您的应用程序,您可能需要使用该字体分配对文本更改或焦点/对焦问题的文本框。

下面是一个简单的示例(空格式,只有一个文本框,当文本显示为'粗体'时,字体变为粗体,不区分大小写):

 public partial class Form1 : Form { public Form1() { InitializeComponent(); RegisterEvents(); } private void RegisterEvents() { _tboTest.TextChanged += new EventHandler(TboTest_TextChanged); } private void TboTest_TextChanged(object sender, EventArgs e) { // Change the text to bold on specified condition if (_tboTest.Text.Equals("Bold", StringComparison.OrdinalIgnoreCase)) { _tboTest.Font = new Font(_tboTest.Font, FontStyle.Bold); } else { _tboTest.Font = new Font(_tboTest.Font, FontStyle.Regular); } } } 

您可以使用Extension方法在常规样式粗体样式之间切换,如下所示:

 static class Helper { public static void SwtichToBoldRegular(this TextBox c) { if (c.Font.Style!= FontStyle.Bold) c.Font = new Font(c.Font, FontStyle.Bold); else c.Font = new Font(c.Font, FontStyle.Regular); } } 

和用法:

 textBox1.SwtichToBoldRegular();