Захват событий мыши от каждого компонента

У меня проблема с MouseEvents в моем приложении WinForm C #.

я хочу получитьвсе щелчки мышью по моему приложению, но я не хочу помещать слушателя в каждый дочерний компонент и не использовать ловушку мыши Windows

На Flash я мог поставить слушателя на сцену, чтобы получить все MouseEvents в фильме.

Есть ли такая вещь на C #? Глобальный 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);

Ответы на вопрос(4)

Ваш ответ на вопрос