C #: вставка текста в RichTextBox приводит к потере форматирования - PullRequest
2 голосов
/ 19 марта 2011

Я пытаюсь вставить текст во время выполнения в RichTextBox, но при этом все ранее использовавшееся форматирование теряется.

Насколько я понимаю, форматирование потеряно, потому что я перезаписываю свойство "Text" RichTextBox, когда вызывается мое KeyPress событие:

(...)
Text = Text.Insert(SelectionStart, MyText);
e.Handled = true;

Кстати, высота моего RichTextBox вычисляется во время выполнения в зависимости от его содержимого.

Я вынужден вставить текст в RTB, иначе содержимое не будет правильно отображаться после его изменения размера (т. Е. По какой-то причине первая строка RTB будет прокручиваться вверх и его можно увидеть только после того, как элемент управления потерял фокус ... См .: C #: Как предотвратить прокрутку содержимого текстового поля при вводе? ).

Есть ли способ вставить текст в RichTextBox, сохраняя при этом все прежнее форматирование без изменений?

Спасибо, ваша помощь очень ценится.

Ответы [ 2 ]

2 голосов
/ 19 марта 2011

Я полагаю, что проблема вызвана полным сбросом текста (Text = ...). Попробуйте использовать что-то вроде:

SelectionLength = 0; // not sure about this one
SelectedText = MyText;
1 голос
/ 19 марта 2011

Попробуйте AppendText , а затем ScrollToCaret .

...