如何在运行时将文本框的文本设置为粗体?
我使用的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();