拖放到托管的浏览器控件

时间:2008-08-07 15:22:40

标签: c# browser

我有一个在.NET 2上编写的WinForms程序,该程序托管一个webbrowser控件并从已知服务器呈现asp.net页面。

我希望能够将我的winforms应用程序中的树视图中的树节点拖到托管网页中的特定位置,并让它在那里触发javascript事件。 目前,我可以在浏览器控件上实现IDocHostUIHandler接口并获取drag \ drop事件,然后在控件上调用Navigate("javascript:fire_event(...)")以在页面上执行脚本。但是,我希望只有当我将数据放在页面的特定部分时才能使用它。

我想,一个解决方案就是咬紧牙关并以activex控件的形式编写一个自定义浏览器插件,将其嵌入到我想要删除的位置,并让它实现所需的拖放接口。

那会有用吗? 有更清洁的方法吗?我可以利用浏览器控件托管在我的应用程序中并提供更多级别的交互吗?

2 个答案:

答案 0 :(得分:2)

看看雅虎的BrowserPlus项目。

看起来他们已经构建了一个工具包,这样你就不必自己编写浏览器插件了。

答案 1 :(得分:1)

如果您可以找到您感兴趣的页面部分的屏幕位置,您可以将其与收到放置事件时鼠标的位置进行比较。如果你能从DOM或其​​他东西中获取信息,我不确定这是多么实用。

作为替代方案,您可以使用javascript在页面的位上实现鼠标事件吗?