Come prendere premuto un tasto su un modulo C # .NET

Ho un modulo padre che contiene molti controlli. Quello che sto cercando di fare è filtrare tutte le pressioni dei tasti per quel modulo. Il problema è che se il focus è su uno dei controlli del modulo, il modulo principale non riceve l’evento key press, quindi come faccio a catturare l’evento key down?

Imposta KeyPreview su true nel tuo modulo e li prenderai: MSDN

myForm : Form { public ChildForm() { KeyPress += KeyPressHandler; } public KeyPressHandler(object sender, KeyPressEventArgs e) { if (_parent != null) { _parent.NotifyKeyPress(e); } } } 

questo sarà più suite nel tuo caso

 protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (keyData == Keys.F1) { MessageBox.Show("You pressed the F1 key"); return true; // indicate that you handled this keystroke } // Call the base class return base.ProcessCmdKey(ref msg, keyData) }