У меня есть форма, которая состоит из различных элементов управления слева, а основной частью является окно браузера, в котором отображается HTML-файл, созданный другими элементами управления. После создания файла я пытаюсь установить фокус на окне браузера, чтобы колесо прокрутки работало.
При каждой попытке ODD это работает, при EVEN попытках это не удается.
Существует два пути кода (оба начинаются с нажатия кнопки), которые генерируют вывод, оба сводятся к:
Browser.Focus();
Browser.DocumentText = RenderAsHTML();
Первая кнопка также обновляет список слева, вторая - нет. Шаблон нечет / чет не зависит от того, какая кнопка была нажата.
Что здесь происходит в мире?
Пробуя ответ ниже и затем бросая в него вещи, я нашел кое-что очень интересное:
Система считает, что окно IS сфокусировано. Browser.Focused возвращает true, даже если он не принимает сообщения колеса прокрутки.
Чтобы сделать этот тест еще более странным, я включил в него ящик с сообщениями, показывающий некоторые переменные - и когда этот ящик был очищен, возвращаясь к экрану, колесо прокрутки работало 100% времени. Удаление ONLY строки MessageBox.Show вернуло ее к старому поведению.