Почему WebBrowser.Refre sh () заставляет RichTextBox перестать принимать ввод? - PullRequest
0 голосов
/ 02 августа 2020

Благодаря другому предложению о stackoverflow, следующее оказалось полезным для создания окна журнала из элемента управления WebBrowser:

private void UpdateHTML(string html)
        {
            Logging.Navigate("about:blank");
            Logging.Document.OpenNew(false);
            Logging.Document.Write(html);
            Logging.Refresh(WebBrowserRefreshOption.Completely);
        }

Однако этот элемент управления использует пользовательский элемент управления совместно с RichTextBox, который на самом деле подача текста в окно регистрации HTML. (Кто-то спросит: «Почему бы вам не использовать RTB для ведения журнала?» Это потому, что я также записываю в файл с HTML. По сути, RTB дает мне интерфейс WYSIWYG для цвета, жирного шрифта и т. Д. c .) Большая проблема, с которой я столкнулся, заключалась в том, что после завершения команды Refre sh курсор исчезал, и я не мог печатать. Отключение от приложения, а затем обратно восстановило его, поэтому я знал, что элемент управления не потерял фокус. Фактически, я добавил события для входа и выхода во все другие элементы управления формы, и ни один из них не сработал. Клавиши со стрелками по какой-то причине восстанавливали каретку и запускали событие KeyDown, но обычные клавиши алфавита - нет.

Документировано, что вызов Refre sh не запускает событие DocumentCompleted, поэтому я не мог ' Я не использую это в своих интересах для фиксации внимания. Я смог использовать событие ProgressChanged для отправки фокуса моему RichTextBox, но это было очень хакерским. Но мне все равно приходилось это делать, так как мне нужно было прокручивать вниз для каждого изменения, и, опять же, DocumentCompleted не помог.

Дополнительная информация:

Form (main window)
+-Form (MdiChild)
  +-UserControl
    +-SplitContainer
      +-Panel1
        +-WebBrowser
      +-Panel2
        +-RichTextBox
      

Итак, почему может ли это простое действие обновления элемента управления WebBrowser привести к сбою ввода для RichTextBox? Есть что-то, что может это подавить?

...