Как установить текст в текстовом поле, выделенном во время выполнения?
Я использую формы Windows, и у меня есть текстовое поле, которое я бы иногда хотел сделать полужирным, если это определенное значение.
Как изменить характеристики шрифта во время выполнения?
Я вижу, что есть свойство, называемое textbox1.Font.Bold, но это свойство Get only.
Ответы
Ответ 1
Жирным шрифтом самого шрифта является только чтение, но фактическое свойство шрифта в текстовом поле отсутствует. Вы можете изменить шрифт текстового поля следующим образом:
textBox1.Font = new Font(textBox1.Font, FontStyle.Bold);
И затем снова:
textBox1.Font = new Font(textBox1.Font, FontStyle.Regular);
Ответ 2
В зависимости от вашего приложения вы, вероятно, захотите использовать это назначение шрифта либо при изменении текста, либо в фокусе/нефокусировке текстового поля, о котором идет речь.
Вот быстрая выборка, на что она могла бы выглядеть (пустая форма с текстовым полем. Шрифт становится полужирным, когда текст читает "полужирный", не учитывает регистр):
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);
}
}
}
Ответ 3
Вы можете использовать метод 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();