apturando eventos de mouse de todos os component
Estou com um problema com o MouseEvents no meu aplicativo WinForm C
Quero recebertodo mouse clica no meu aplicativo, mas não quero colocar um ouvinte em cada componente filho nem usar o gancho do mouse do Window
No Flash, eu poderia colocar um ouvinte no palco para obter todos os eventos do mouse no film
Existe tal coisa em c #? Um MouseListener global?
Editar
Crio esta classe a partir de IMessageFilter e usei 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;
}
}
E coloque esse código nos controles que precisam ouvir cliques globais:
GlobalMouseHandler globalClick = new GlobalMouseHandler();
Application.AddMessageFilter(globalClick);