Элемент управления WebBrowser останавливает фокус на richtextbox - PullRequest
0 голосов
/ 12 января 2010

У меня проблема с компонентом WebBrowser. По какой-то причине, когда я нажимаю на него, он не позволяет мне сосредоточиться на richTextBox.

У меня 2 практически одинаковых формы.

Основное различие между первой и второй формой заключается в том, что form1 изменяет WebBrowser DocumentText, а form2 использует webBrowser для отображения содержимого временного файла.

Первая форма работает очень хорошо, WebBrowser не отключает фокус на richTextBox. Но вторая форма проблемная. Когда вы щелкаете в компоненте WebBrowser, а затем обратно в richtextBox, он никогда больше не фокусируется методом Focus (): (

Ответы [ 2 ]

0 голосов
/ 13 октября 2014

У меня была та же проблема, и с вашим ответом я нашел другое решение, которое работает для меня.

Мое решение очень похоже на ваше. У меня есть форма 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();
}

И вуаля, это работает!

Надеюсь, это кому-нибудь поможет!

0 голосов
/ 24 января 2010

Я решил это :) Я добавил цикл while, который ждет, пока свойство webBrowser.Document не будет полностью инициализировано. Затем я использовал webBrowser.Document.CreateElement для создания новых html-элементов и webBrowser.Document.Body.AppendChild для их добавления в документ. (Я перестал использовать временный файл ...)

...