Принятый ответ действительно верен, и я использовал этот подход несколько раз. Внезапно, это больше не будет работать, поэтому я нахожу это странным. Главным образом потому, что моя точка останова не будет нажата для клавиши ESC , но будет достигнута для других клавиш.
После отладки я обнаружил, что один из элементов управления в моей форме переопределяет метод ProcessCmdKey
с этим кодом:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
// ...
if (keyData == (Keys.Escape))
{
Close();
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
... и это мешало моей форме получить ключ ESC (обратите внимание на return true
). Поэтому убедитесь, что ни один дочерний элемент управления не принимает ваш вклад.