Не совсем понятно, чего вы пытаетесь достичь. Я не уверен, что понимаю форматирование в скобках почти так же хорошо, как изображение, которое вы смоделировали в Paint. Но все равно идет ...
Я подозреваю, что есть пара проблем с вашим существующим кодом. Прежде всего, это местоположение курсора при вставке нового текста. То, что должно прийти после , первый фрагмент фактически вставляется до его из-за того, где находится метка вставки. Чтобы это исправить, вам нужно переместить его вручную.
Вы также присваиваете строку текста свойству Text
в конце своего кода, которое не сохраняет существующую информацию о форматировании. Я подозреваю, что самое простое, что вам нужно сделать, - это вместо этого использовать AppendText
метод .
И, наконец, я рекомендую использовать упрощенную перегрузку для создания нового шрифта, поскольку единственное, что вы хотите изменить, - это стиль. Преимущество использования этого вместо этого заключается в том, что вам не нужно жестко задавать имя и размер шрифта в вашем коде на случай, если вы захотите изменить его позже.
Попробуйте вместо этого переписать свой код:
' Insert first snippet of text, with default formatting
RichTextBox1.Text = "This is black "
' Move the insertion point to the end of the line
RichTextBox1.Select(RichTextBox1.TextLength, 0)
'Set the formatting and insert the second snippet of text
RichTextBox1.SelectionFont = New Font(RichTextBox1.Font, FontStyle.Bold)
RichTextBox1.SelectionColor = Color.Green
RichTextBox1.AppendText("[BOLD GREEN]")
' Revert the formatting back to the defaults, and add the third snippet of text
RichTextBox1.SelectionFont = RichTextBox1.Font
RichTextBox1.SelectionColor = RichTextBox1.ForeColor
RichTextBox1.AppendText(" black again")
Результат будет выглядеть так: