在WebBrowser组件上删除项目时出现问题

时间:2011-08-29 14:44:07

标签: c# asp.net drag-and-drop browser

我想将一些控件从自定义工具箱中删除到WebBrowser组件上。因为这个组件不支持拖放我使用包装器来捕获DragEnter,DragOver,...这个方法工作正常,而应用程序仍配置为在.NET framework 2.0中工作。

由于某些原因,我不得不升级到.Net framework 4.0。我的包装器的所有拖放功能都被破坏了。不会触发任何事件。像“导航”这样的事件仍然可以正常工作......

我已经找到了可能的答案并尝试了一些事情,但我无法修复它。有人有任何线索吗?目前我正在考虑实现在Codeproject

中给出的包装器

谢谢你的时间!

编辑1(& 2): 我继续寻找答案并发现了以下内容:

  1. DragEnter事件应该在某处触发,因为浏览器上会出现右图标。只有在正确设置DragDropEffect时才会出现此图标。但我找不到DragEnter事件(或其他)的处理程序。

  2. 我试图将想要的项目放到另一个屏幕部分。屏幕的这一部分不包含很多组件,因此在那里实现drop-action非常容易。它工作得很好。我能够从eventArgs中获取对象。但它仍然没有在webbrowser组件上工作。

  3. 也许这些线索可以帮助您解决这个问题。

1 个答案:

答案 0 :(得分:0)

我实际工作的第一种方式是在javascript代码中添加一些事件和处理程序。我设定的事件是:

  • ondragenter
  • ondragover
  • ondragleave
  • ondrop(不是ondragdrop !!!)

通过在javascript中处理这些事件并将事件发送到C#-code,我可以根据需要处理这些事件。

为了实现控制,我正在拖动我实施了一个小“剪贴板”。使用这个静态类,我能够保存我正在拖动的控件并从“onDragEnter”代码访问它。