关于c#:拖放到托管的浏览器控件

关于c#:拖放到托管的浏览器控件

Drag and Drop to a hosted Browser control

我有一个用.NET 2编写的WinForms程序,该程序承载一个webbrowser控件并从已知服务器呈现asp.net页。

我希望能够将一个树节点从我的winforms应用程序中的treeview拖动到托管网页中的特定位置,并在那里触发javascript事件。
当前,我可以实现IDocHostUIHandler界面并在浏览器控件上获取拖放事件,然后在控件上调用Navigate("javascript:fire_event(...)")在页面上执行脚本。 但是,我只希望在将数据放在页面的特定部分上时才起作用。

我想,一种解决方案是硬着头皮,以activex控件的形式编写一个自定义浏览器插件,将其嵌入到我想要放置的位置,并实现所需的拖放接口。

那行得通吗?
有没有更清洁的方法? 我可以利用浏览器控件托管在我的应用程序中并提供进一步交互的事实吗?


看看Yahoo的BrowserPlus项目。

看来他们已经构建了一个工具包,因此您不必亲自编写浏览器插件就可以完成繁琐的工作。


如果您可以找到感兴趣的页面部分在屏幕上的位置,则可以将其与收到放置事件时的鼠标位置进行比较。 我不确定如果您可以从DOM或其他方面获取信息,这有多实用。

或者,您可以使用javascript在页面的位上实现鼠标事件吗?


推荐阅读