18

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

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

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

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

4

2 回答 2

3

Take a look at the BrowserPlus project at Yahoo.

It looks like they have built a toolkit so that you don't have to do the gritty work of writing the browser plugin yourself.

于 2008-08-07T20:39:07.797 回答
1

If you can find out the on screen position of the part of the page you are interested in, you could compare this with the position of the mouse when you receive the drop event. I'm not sure how practical this is if you can get the info out of the DOM or whatnot.

As an alternative could you implement the mouse events on the bit of the page using javascript?

于 2008-08-27T04:52:30.250 回答