我正在使用Windows窗体,并且我有一个文本框,如果它是特定值,我会偶尔使文本变为粗体。如何在运行时将文本框的文本设置为粗体?
如何在运行时更改字体特征?
我看到有一个属性叫做textbox1.Font.Bold,但这是一个Get only属性。
我正在使用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();
谢谢!哇,这比我想象的容易得多。所以我想这意味着字体就像一个字符串,一旦你创建它,你就不能改变它。你只能声明它的一个新实例。 – Diskdrive 2010-06-21 23:05:02
是的,它表现得像字符串一样,一旦创建就无法改变其状态,即它是[不可变](http://en.wikipedia.org/wiki/Immutable_object)。但是,尽管有一些MSDN文章指出Font是不可变的,但Font本身的实际引用并未说明这一点。 – 2010-06-21 23:09:47
为一个linkbutton这为我工作︰button.Font.Bold = true – deebs 2015-07-01 18:53:55