我需要在.NET的WebBrowser上捕获所有鼠标事件,处理它们并阻止WebBrowser获取它们。有没有办法实现这个目标?我想知道如果控件被禁用,我是否可以处理鼠标事件。
答案 0 :(得分:3)
您必须覆盖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);
}
}
答案 1 :(得分:3)
有一个解决方案。您需要捕获与与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)
{
}
}