回答:
フォント自体の太字プロパティは読み取り専用ですが、テキストボックスの実際のフォントプロパティは読み取り専用ではありません。次のようにして、テキストボックスのフォントを太字に変更できます。
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();
txtText.Font = new Font("Segoe UI", 8,FontStyle.Bold);
//Font(Font Name,Font Size,Font.Style)