У меня есть программа WinForms, написанная на .NET 2, в которой размещен элемент управления веб-браузером и отображаются страницы asp.net с известного сервера.
Я хотел бы иметь возможность перетаскивать, скажем, узел дерева из treeview в моем приложении winforms в определенное место на размещенной веб-странице и запускать там событие javascript.
В настоящее время я могу реализовать интерфейс IDocHostUIHandler и получать события перетаскивания в элементе управления браузера, а затем вызывать Navigate("javascript:fire_event(...)") в элементе управления для выполнения сценария на странице. Однако я хочу, чтобы это работало только тогда, когда я перетаскиваю данные в часть страницы специфический.
Я полагаю, что одним из решений было бы укусить пулю и написать собственный плагин для браузера в виде элемента управления ActiveX, встроить его в то место, куда я хочу перейти, и позволить ему реализовать необходимые интерфейсы перетаскивания / перетаскивания.
Это сработает? Есть ли более чистый подход? Могу ли я воспользоваться тем фактом, что элемент управления браузера размещен в моем приложении, и обеспечить дополнительный уровень взаимодействия?





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