Я занимаюсь разработкой приложения с использованием WinForms и элемента управления RichTextBox. Этот элемент управления позволяет вносить различные изменения в формат RTF, используя свойство для изменения шрифта выделенного текста. У меня есть кнопка для переключения жирным шрифтом по тексту:
richTextBoxEditor.SelectionFont = new Font(richTextBoxEditor.SelectionFont,
richTextBoxEditor.SelectionFont.Style ^ FontStyle.Bold);
Мои другие кнопки (курсив, подчеркивание) имеют идентичный код, за исключением части FontStyle.Bold, которая изменяется для соответствующего форматирования.
Теперь проблема в том, что если я напишу «Hello World» и изменит «Hello» на курсив, а затем я пытаюсь изменить весь «Hello World» на жирный, «Hello» теряет курсив. Я понимаю, почему это происходит (потому что перечисление для всего выбора пусто, поэтому, когда я переключаю полужирный, курсивный флаг остается равным 0), но я пытаюсь найти способ преодолеть это. Я не могу думать ни о чем, кроме как идти за персонажем и менять стиль индивидуально.
Ребята, у вас есть идея получше?
Спасибо.