Перетащите мышью на размещенный элемент управления в браузере

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

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

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

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


person HS.    schedule 07.08.2008    source источник


Ответы (2)


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

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

person Justin Walgran    schedule 07.08.2008

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

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

person Ben Childs    schedule 27.08.2008