在WebBrowser组件上删除项目的问题

本文关键字:问题 删除项目 WebBrowser 组件 | 更新日期: 2023-09-27 18:07:10

我想从自定义工具箱中删除一些控件到WebBrowser组件上。因为这个组件不支持拖放,所以我使用了一个包装器来捕获DragEnter, DragOver,…当应用程序仍然配置为在。net框架2.0中工作时,此方法可以正常工作。

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

我已经搜索了可能的答案,并尝试了一些事情,但我无法解决它。有人知道吗?目前我正在考虑实现包装器给出:Codeproject

谢谢你的时间!

编辑1 (&2):我继续寻找答案,发现了以下东西:

  1. 应该在某个地方触发dragenter -事件,因为浏览器上出现了正确的图标。只有当DragDropEffect设置正确时,这个图标才会出现。但是我找不到dragenter事件(或其他)的处理程序。

  2. 我试图把想要的项目放到另一个屏幕部分。屏幕的这一部分不包含很多组件,所以在那里实现下拉动作很容易。它运行得很好。我能够从eventArgs中获取对象。但是它仍然不能在webbrowser组件上工作

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

在WebBrowser组件上删除项目的问题

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

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

通过在javascript中处理这些事件并将事件发送到c#代码,我可以按照需要处理这些事件。

为了得到我正在拖动的控件,我实现了一个小"剪贴板"。有了这个静态类,我就可以按住我正在拖动的控件,并从"onDragEnter"代码访问它。