Как сделать текст полужирным шрифтом в богатом текстовом поле С#

Я хочу создать текстовый редактор, где я могу сделать смелый, изменить цвет и т.д.

Я нашел, что этот код работает примерно:

public static void BoldSelectedText(RichTextBox control)
{
     control.SelectionFont = new Font(control.Font.FontFamily, control.Font.Size,         FontStyle.Bold);
}

Но когда я пытаюсь ввести больше букв в rtf, он по-прежнему выделен жирным шрифтом.

Как это сделать, только выделенный текст будет выделен жирным шрифтом, а следующие строки не будут, если я не выберу текст и не нажму кнопку "Сделать жирным".

Ответ 1

Вы должны установить шрифт после выбора в исходный шрифт.

Если вы хотите, вы можете сохранить SelectionStart и SelectionLength и вызвать метод Select, чтобы снова выбрать текст.

// Remember selection
int selstart = control.SelectionStart;
int sellength = control.SelectionLength;

// Set font of selected text
// You can use FontStyle.Bold | FontStyle.Italic to apply more than one style
control.SelectionFont = new Font(control.Font, FontStyle.Bold);

// Set cursor after selected text
control.SelectionStart = control.SelectionStart + control.SelectionLength;
control.SelectionLength = 0;
// Set font immediately after selection
control.SelectionFont = control.Font;

// Reselect previous text
control.Select(selstart, sellength);

таким образом текст остается выбранным, а шрифт по-прежнему остается правильным.