Oder Sie können C# MessageFilter verwenden. Es sollte funktionieren, während ein Steuerelement/Formular aus dem Prozess Ihrer Anwendung den Fokus hat.
Beispielcode:
class KeyboardMessageFilter : IMessageFilter
{
public bool PreFilterMessage(ref Message m)
{
if (m.Msg == ((int)Helper.WindowsMessages.WM_KEYDOWN))
{
switch ((int)m.WParam)
{
case (int)Keys.Escape:
// Do Something
return true;
case (int)Keys.Right:
// Do Something
return true;
case (int)Keys.Left:
// Do Something
return true;
}
}
return false;
}
}
Und als einfach eine neue Message in der Anwendung einzufügen:
Application.AddMessageFilter(new KeyboardMessageFilter());
+1 für die sauberste Lösung, die für Maus-Ereignisse auch gut. Vielen Dank! – AVIDeveloper
Was macht 'Helfer'? und wie importiere ich es? –
http://stackoverflow.com/questions/31953297/the-name-helper-does-not-exist-in-the-current-context – niklon