[英]How can I trap all mouse events on a control?
我需要捕获.NET的WebBrowser上的所有鼠标事件,进行处理并阻止WebBrowser捕获它们。 有什么办法可以做到这一点? 我想知道如果禁用了控件,是否可以通过任何方式处理鼠标事件。
您必须重写WndProc()才能拦截鼠标消息。 像这样:
using System;
using System.Windows.Forms;
class MyBrowser : WebBrowser {
protected override void WndProc(ref Message m) {
if (m.Msg >= 0x200 && m.Msg <= 0x20a) {
// Handle mouse messages
//...
}
else base.WndProc(ref m);
}
}
有一个解决方案。 您需要捕获与与webBrowser控件关联的Document对象关联的鼠标事件。
在发生DocumentCompleted事件之后,在您的DocumentCompleted事件处理程序内部,执行以下操作:
myWebBrowser.Document.MouseDown += new HtmlElementEventHandler(myMouseDown);
并具有相关的处理程序:
void myMouseDown(object sender, HtmlElementEventArgs e)
{
your code to handle the mouse event... such as ...
if (e.MouseButtonsPressed == MouseButtons.Right)
{
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.