我正在使用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