Сведения о вопросе

PASHA

16:03, 1st July, 2020

Теги

c#   browser    

Перетащите элемент управления размещенного браузера

Просмотров: 409   Ответов: 2

У меня есть программа WinForms, написанная на .NET 2, который размещает элемент управления webbrowser и отображает asp.net страницы с известного сервера.

Я хотел бы иметь возможность перетащить, скажем, узел дерева из treeview в моем приложении winforms в определенное место на размещенной веб-странице и вызвать там событие javascript. В настоящее время я могу реализовать интерфейс IDocHostUIHandler и получить события drag\drop в элементе управления браузера, а затем вызвать Navigate("javascript:fire_event(...)") в элементе управления для выполнения сценария на странице. Однако я хочу, чтобы это работало только тогда, когда я отбрасываю данные на определенную часть страницы.

Одним из решений, я полагаю, было бы укусить пулю и написать пользовательский плагин браузера в виде элемента управления activex, встроить его в место, куда я хочу упасть, и позволить реализовать необходимые интерфейсы drag\drop.

Это сработает? Есть ли более чистый подход? Могу ли я воспользоваться тем фактом, что элемент управления браузером размещен в моем приложении, и обеспечить дополнительный уровень взаимодействия?



  Сведения об ответе

pumpa

18:03, 1st July, 2020

Взгляните на проект BrowserPlus по адресу Yahoo.

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


  Сведения об ответе

SSESION

18:03, 1st July, 2020

Если вы можете узнать положение на экране интересующей вас части страницы,вы можете сравнить это с положением мыши при получении события drop. Я не уверен, насколько это практично, если вы можете получить информацию из DOM или чего-то еще.

В качестве альтернативы вы можете реализовать события мыши на бит страницы с помощью javascript?


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться