Перетащите в размещенный элемент управления Browser - PullRequest
14 голосов
/ 07 августа 2008

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 08 августа 2008

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

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

1 голос
/ 27 августа 2008

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...