我需要捕获.NET的WebBrowser上的所有鼠标事件,处理它们并阻止WebBrowser获取它们。有什么办法可以做到这一点?我想知道如果控件被禁用,是否有任何方法可以处理鼠标事件。如何捕获控件上的所有鼠标事件?
0
A
回答
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);
}
}
+0
一个(非详尽的)windows消息列表可以在这里找到http://www.autohotkey.com/docs/misc/SendMessageList.htm – Filip 2013-01-04 23:52:39
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)
{
}
}
+0
这一个节省了我的一天。 – yyoon 2015-07-31 01:32:44
相关问题
- 1. 如何捕获WindowsFormsHost控件中的鼠标单击事件?
- 2. 捕获鼠标事件
- 3. 如何捕获鼠标移动事件
- 4. 如何捕获任意QWidget上的鼠标事件?
- 5. 如何捕获NSButton上的鼠标事件(mouseDown和mouseUp)?
- 6. 捕获控件之外的鼠标事件
- 7. 透明控件不捕获鼠标事件
- 8. WebBrowser控件中(VB.net)捕获鼠标事件
- 9. 在用户控件中捕获包含的控件的鼠标事件
- 10. 如何获取onMouseDown事件中鼠标光标下的控件?
- 11. Skin UIComponents如何捕捉鼠标事件?
- 12. socket.io - 捕获所有事件
- 13. 捕获所有事件(javascript)
- 14. JOGL不捕获Java鼠标事件
- 15. ç诅咒不捕获鼠标事件
- 16. Cocoa - 捕获NSStatusItem鼠标悬停事件
- 17. 捕获鼠标松开事件/窗口
- 18. 捕获鼠标事件在Python
- 19. 在C(linux)中捕获鼠标事件
- 20. Pyside QgraphicsScene无法捕获鼠标事件
- 21. highcharts:从捕捉鼠标事件,或捕获鼠标点击整个图表上
- 22. 如何在Dashcode小部件中捕获鼠标拖动事件?
- 23. 捕捉鼠标事件
- 24. 捕捉鼠标事件
- 25. 如何获取应用程序的所有鼠标事件?
- 26. 如何从类中提取和捕获鼠标事件(不从控件继承)?
- 27. 订阅表单中所有控件的鼠标事件
- 28. 子窗体没有捕获任何鼠标事件
- 29. 捕获鼠标滚轮事件,即使鼠标不在聚焦控制中
- 30. 如何通过Shockwave捕获FF中的鼠标事件对象
如果您正在使用WPF,你可以打下透明画布放在WebBrowser控件的顶部,只需用Canvas捕捉所有事件即可...... Winforms是一个不同的故事。 – 2010-08-12 20:44:33
重复? http://stackoverflow.com/questions/3268619/catching-a-contained-controls-mouse-events-in-a-usercontrol – 2010-08-12 21:42:02
这读起来有点古怪,你会忽略它们吗?如果你没有真正的愿意和他们做任何事情,为什么要陷入困境?只是忽略他们? – IbrarMumtaz 2010-08-12 21:57:03