У меня была та же проблема, и с вашим ответом я нашел другое решение, которое работает для меня.
Мое решение очень похоже на ваше.
У меня есть форма RichTextBox, в которой есть текст, и один веб-браузер, отображающий этот текст (чтобы включить его в электронное письмо).
Итак, когда я изменяю текст в RichTextBox с помощью обработчика событий «TextChanged», я обновляю HTML в WebBrowser. Но когда я нажимаю, как и вы, на тело WebBrowser, я могу изменить только один символ, и WebBrowser возвращается назад. Раздражает ...
Итак, после долгого поиска и вашего ответа я пришел к следующему: я снова сосредоточился на WebBrowser, а затем на RichTextBox. И это работает!
private void RichTextBox1_TextChanged(object sender, EventArgs e)
{
/* your stuff */
WebBrowser1.Navigate("about:blank");
WebBrowser1.Document.OpenNew(false);
WebBrowser1.Document.Write(your_html);
WebBrowser1.Focus();
RichTextBox1.Focus();
}
И вуаля, это работает!
Надеюсь, это кому-нибудь поможет!