Переопределить метод ProcessCmdKey () формы.Он вызывается прямо из цикла сообщений, прежде чем сообщение клавиатуры отправляется в элемент управления с фокусом.Вот почему переопределение WndProc () не работает.
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
if (keyData == (Keys.Control | Keys.F)) {
MessageBox.Show("What the Ctrl+F?");
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
Технически вы также можете переопределить метод OnKeyDown формы с помощью KeyPreview = true, но это ужасный анахронизм VB6.