Как установить текстовое поле для полужирного во время выполнения? - PullRequest
86 голосов
/ 22 июня 2010

Я использую формы Windows, и у меня есть текстовое поле, которое мне бы хотелось, чтобы текст выделялся жирным шрифтом, если это определенное значение.

Как изменить характеристики шрифта во время выполнения?

Я вижу, что есть свойство с именем textbox1.Font.Bold, но это свойство Get only.

Ответы [ 4 ]

154 голосов
/ 22 июня 2010

Свойство bold самого шрифта доступно только для чтения, но фактическое свойство шрифта текстового поля - нет. Вы можете изменить шрифт текстового поля на полужирный следующим образом:

  textBox1.Font = new Font(textBox1.Font, FontStyle.Bold);

А потом снова:

  textBox1.Font = new Font(textBox1.Font, FontStyle.Regular);
2 голосов
/ 22 июня 2010

В зависимости от вашего приложения вы, вероятно, захотите использовать это назначение шрифта либо при изменении текста, либо при фокусировке / расфокусировке рассматриваемого текстового поля.

Вот краткий пример того, как это может выглядеть (пустая форма, только с текстовым полем. Шрифт становится жирным, когда текст читается «жирным шрифтом», без учета регистра):

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);
        }
    }
}
1 голос
/ 09 августа 2017

Вы можете использовать метод 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();
0 голосов
/ 04 апреля 2018
 txtText.Font = new Font("Segoe UI", 8,FontStyle.Bold);
 //Font(Font Name,Font Size,Font.Style)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...