Как включить события клавиатуры в элементе управления WebBrowser в панели задач Office

80
12

У меня есть элемент управления WebBrowser показанный в пользовательской области задач в надстройке уровня приложения Microsoft Office, созданной в Visual Studio. Веб-страница, отображаемая в WebBrowser, не принимает события клавиатуры, которые могут обрабатываться кодом JavaScript, например KeyUp. Та же самая страница, показанная в сопоставимом WebBrowser в Form, получает события клавиатуры. Сам элемент управления WebBrowser не показывает каких-либо событий, связанных с вводом на клавиатуру, и я, похоже, не способен обрабатывать события клавиатуры, добавляя обработчики событий в UserControl добавленные в качестве настраиваемой области задач.

Я создал минимальный пример - решение Visual Studio, которое воссоздает проблему.

Есть ли способ передать события клавиатуры на веб-страницу?

спросил(а) 2021-01-19T13:13:29+03:00 9 месяцев, 1 неделя назад
1
Решение
137

Да, вы можете это сделать. Вам придется подключаться к событиям HTML DOM (например, onclick, onmouseover и т.д.). Взгляните сюда: http://www.w3schools.com/jsref/dom_obj_event.asp.

И вот пример: http://www.codeproject.com/Articles/547451/WebBrowser-Element-Events-and-Values


Я думаю, вам придется добавить ссылку на библиотеку MSHTML. BTW, установите элемент управления WebBrowser в элемент управления Panel или он будет действовать goofy - особенно с событиями клавиатуры.

ответил(а) 2021-01-19T13:13:29+03:00 9 месяцев, 1 неделя назад
46

На самом деле я нашел решение использовать WebBrowser в пространстве имен Excel

https://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.controls.webbrowser.aspx

Очевидно, что он подклассифицирует окна в форме WebBrowser и исправляет проблемы с клавиатурой, вручную передавая сообщение Windows.

ответил(а) 2021-01-19T13:13:29+03:00 9 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема