【发布时间】:2013-11-20 09:47:41
【问题描述】:
我有 TreeView、ListView 和 WebBrowser 控件。我使用拖放方法。使用 TreeView 和 ListView 一切正常,因为它们有 Dragdrop 和 DragEnter 事件。 但我没有在 WebBrowser 中找到它们。
我尝试使用:
webBrowser1.Document.Body.Drag += new HtmlElementEventHandler(WebBrowser_Drag);
webBrowser1.Document.Body.DragOver += new HtmlElementEventHandler(WebBrowser_DragOver);
webBrowser1.Document.Body.DragEnd += new HtmlElementEventHandler(WebBrowser_DragEnd);
webBrowser1.Document.Body.DragLeave += new HtmlElementEventHandler(WebBrowser_DragLeave);
DragOver 和 DragLeave 事件触发了,但是不能像改变光标一样
e.Effect = DragDropEffects.None;
不会触发 Drag 和 DragEnd 事件。
我也试试:
webBrowser1.Document.Body.AttachEventHandler("dragdrop", WebBrowser_DragDrop);
webBrowser1.Document.AttachEventHandler("dragdrop", WebBrowser_DragDrop);
webBrowser1.Document.AttachEventHandler("ondrop", WebBrowser_OnDrop);
webBrowser1.Document.Body.AttachEventHandler("ondrop", WebBrowser_OnDrop);
但效果不好。
现在我有一些问题:
- 如何在 DragOver 和 DragLeave 事件中更改光标。
- 有没有办法处理数据以及 WebBrowser 的 Dragdrop 和 DragEnter?
【问题讨论】:
-
它们根本不像普通的桌面 D+D 事件那样工作,你应该自己操作 DOM。最好的起点是从 Javascript 示例代码开始。尝试像“javascript ondragenter getdata”这样的谷歌查询。
标签: c# .net drag-and-drop webbrowser-control