相关疑难解决方法(0)

从每个组件捕获鼠标事件

我的WinForm C#应用程序上的MouseEvents有问题.

我想在我的应用程序上点击所有鼠标,但我不想在每个子组件中都放置一个监听器,也不要使用Windows鼠标钩子.

在Flash上​​我可以在Stage上放置一个监听器来获取电影上的所有MouseEvent.

C#上有这样的东西吗?全局MouseListener?


编辑:

我从IMessageFilter ans使用Application.AddMessageFilter创建了这个类.

public class GlobalMouseHandler : IMessageFilter{

    private const int WM_LBUTTONDOWN = 0x201;

    public bool PreFilterMessage(ref Message m){
        if (m.Msg == WM_LBUTTONDOWN) {
            // Do stuffs
        }
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

并将此代码放在需要监听全局点击的控件上:

GlobalMouseHandler globalClick = new GlobalMouseHandler();
Application.AddMessageFilter(globalClick);
Run Code Online (Sandbox Code Playgroud)

c# mouseevent winforms

30
推荐指数
2
解决办法
3万
查看次数

标签 统计

c# ×1

mouseevent ×1

winforms ×1