Sto riscontrando il seguente problema in un'app WinForms. Sto cercando di implementare i tasti di scelta rapida e devo elaborare i messaggi chiave ogni volta che il controllo è attivo, non importa se il focus è su una casella di testo all'interno di quel controllo, ecc.ProcessCmdKey - attendere KeyUp?
Override ProcessCmdKey funziona magnificamente per questo e fa esattamente ciò che Voglio con una sola eccezione:
Se un utente preme un tasto e lo tiene premuto, ProcessCmdKey continua ad attivare gli eventi WM_KEYDOWN.
Tuttavia, ciò che voglio ottenere è che l'utente debba rilasciare nuovamente il pulsante prima che venga avviata un'altra azione hotkey (quindi, se qualcuno si siede sulla tastiera non causerebbe eventi di hotkey continui).
Tuttavia, non riesco a trovare dove rilevare gli eventi WM_KEYUP, quindi posso impostare un flag se deve elaborare nuovamente i messaggi ProcessCmdKey?
Chiunque può dare una mano qui?
Grazie,
Tom
Hm, che non sembra funzionare per me, PreProcessMessage non sembra ottenere innescato. – TJF
Arf, funziona solo se il modulo ha lo stato attivo. Abbiamo bisogno del piano B, lascia che ci pensi. –
@ Tom: ok, IMessageFilter può farlo. Ho aggiornato il mio post. –