问题描述
我有TreeView,ListView和WebBrowser控件。我使用拖放方法。使用TreeView和ListView可以正常工作,因为它们具有Dragdrop和DragEnter事件。
但是我没有在WebBrowser中找到它们。
I have TreeView, ListView and WebBrowser controls. I use the drag and drop method. With the TreeView and ListView everything works, because they have Dragdrop and DragEnter event.But I did not find them in 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事件,但无法像
The DragOver and DragLeave events triggered, but it is not possible to change the cursor like
e.Effect = DragDropEffects.None;
没有触发Drag和DragEnd事件。
The Drag and DragEnd events is not triggered.
我也尝试:
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?
推荐答案
- 在此处更改光标。但是不幸的是,在可能的游标中没有拖放游标。
-
解决我发现的问题的最简单方法是使用透明面板:
- Changing the cursor here Change webbrowser Cursor. But among the possible cursors unfortunately no draganddrop cursor.
The easiest way to solve my problem that I have found is to use a transparent panel Clearing the graphics of a transparent panel C#:
private void WebBrowser_DragOver(object sender, HtmlElementEventArgs e)
{
panel.BringToFront();
}
private void Panel_DragLeave(object sender, EventArgs e)
{
panel.SendToBack();
}
private void Panel_MouseLeave(object sender, EventArgs e)
{
panel.SendToBack();
}
private void Panel_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Move;
}
private void Panel_DragDrop(object sender, DragEventArgs e)
{
//Make dragdrop data processing
}
这篇关于在网络浏览器上捕获DragEnter和DragDrop事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!