Как сделать текст жирным в поле расширенного текста в C # - PullRequest
11 голосов
/ 28 октября 2011

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

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

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

Но когда я набираюдругими буквами в RichTextBox текст все еще выделен жирным шрифтом.

Как сделать так, чтобы только выделенный текст был полужирным, а следующие символы - нет, если я не выделю текст и не нажму «Сделать»Жирная кнопка?

1 Ответ

16 голосов
/ 28 октября 2011

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

Если вы хотите, вы можете сохранить 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);

таким образом текст остается выделенным, а шрифт после этого остается правильным.

...