Tengo un problema con MouseEvents en mi aplicación WinForm C#. Quiero obtener TODOS los clics del mouse en mi aplicación, pero no quiero poner un oyente en cada componente secundario ni usar el gancho del mouse de Windows.Capturar eventos de mouse de cada componente en C# WInForm
En Flash pude poner un oyente en el escenario para obtener todos los eventos de ratón en la película. ¿Existe tal cosa en C#? ¿Un mouseListener global?
Editar: que crear esta clase de IMessageFilter ans Application.AddMessageFilter utilizado.
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;
}
}
Y poner este código en los controles que necesitan escuchar clics globales:
GlobalMouseHandler globalClick = new GlobalMouseHandler();
Application.AddMessageFilter(globalClick);
Gracias por la ayuda!
Gracias por la ayuda! Todo funciona bien Utilicé Application.AddMessageFilter con suscess. Engancho los eventos del mouse y creo un C# MouseEventHandler para enviar el evento en el nivel de WinForm a otros controles. –