Если вы используете Windows формы .NET, добавьте следующее в основную форму приложения:
protected override void OnControlAdded(ControlEventArgs e)
{
e.Control.Click += new EventHandler(Control_Click);
e.Control.KeyDown += new KeyEventHandler(Control_KeyDown);
base.OnControlAdded(e);
}
void Control_KeyDown(object sender, KeyEventArgs e)
{
// Hande all keydown events, sender is the control
Debug.WriteLine( sender.ToString() + " - KeyDown");
}
void Control_Click(object sender, EventArgs e)
{
// Hande all click events, sender is the control
Debug.WriteLine(sender.ToString() + " - Click");
}
protected override void OnControlRemoved(ControlEventArgs e)
{
e.Control.KeyDown -= Control_KeyDown;
e.Control.Click -= Control_Click;
base.OnControlRemoved(e);
}
Просто добавьте любые дополнительные события, которые вам нужны (такие как KeyPress, MouseEnter, MouseDown и т. Д.), Аналогичным образом. Это немного чище и проще, чем вникать в Windows API.