Интересно. (Это не Доктор Хаус, доктор медицины, говоря.)
Если в пустом элементе управления RTF ничего не выбрано, SelectedRtf
возвращает:
"{\rtf1\ansi\ansicpg1252\deff0\deflang2055\uc1 }"
Когда материал «фантом» выбран в пустом элементе управления RTF, SelectedRtf
возвращает:
"{\rtf1\ansi\ansicpg1252\deff0\deflang2055{\fonttbl{\f0\fnil\fcharset0 Microsoft Sans Serif;}}
\viewkind4\uc1\pard\f0\fs17\par
}"
Конечно, SelectedText
возвращает пустую строку в обоих случаях.
Так что я подозреваю, что выбрано metainfo, который гарантирует, что вновь введенный текст, который заменит пустой выбор, будет вставлен с правильным шрифтом .
Однако это кажется бессмысленным, поскольку вновь введенный текст будет вставлен с правильным шрифтом, даже если ничего не выбрано.
Так что все это не имеет смысла. (Ну, это так, вроде - см. Последний абзац)
Что заставляет меня верить, что это ошибка или, по крайней мере, сбой в RichTextBox.
Информация о форматировании, вероятно, создается процедурой выбора, которая гарантирует, что выбранный непустой текст будет заменен вновь набранным текстом, отформатированным в том же формате, что и текст, который он заменяет. Чтобы это работало, выделение всегда должно содержать информацию о форматировании, даже если текст не выделен. Я думаю. Возможно, можно каким-то образом предварительно выбрать форматирование символа и абзаца, отличное от заданного по умолчанию, а затем при наборе текста используется этот формат.