У меня проблема с MouseEvents в моем приложении WinForm С#. Я хочу получить ВСЕ щелчки мышью в моем приложении, но я не хочу помещать слушатель в каждый дочерний компонент, а также не использовать ловушку мыши Windows.
На Flash я мог бы поставить слушателя на сцену, чтобы получить все MouseEvents в фильме. Есть ли такая вещь на С#? Глобальный MouseListener?
Редактировать: я создаю этот класс из IMessageFilter и используется 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;
}
}
И поместите этот код в элементы управления, которые должны прослушивать глобальные щелчки:
GlobalMouseHandler globalClick = new GlobalMouseHandler();
Application.AddMessageFilter(globalClick);