Oppure puoi usare il MessageFilter di C#. Dovrebbe funzionare mentre è attivo qualsiasi controllo/modulo dal processo dell'applicazione.
codice di esempio:
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;
}
}
E che semplicemente aggiungere un nuovo MessageFilter alla vostra applicazione:
Application.AddMessageFilter(new KeyboardMessageFilter());
fonte
2009-05-05 11:31:26
+1 per la soluzione più pulita, che è anche un bene per gli eventi del mouse. Grazie! – AVIDeveloper
cosa fa 'Helper'? e come lo importa? –
http://stackoverflow.com/questions/31953297/the-name-helper-does-not-exist-in-the-current-context – niklon