Если вы хотите создать глобальный менеджер горячих клавиш, чтобы ваша форма была доступна для всех элементов управления в этой форме, вам необходимо переопределить метод Form.ProcessCmdKey()
, который перехватывает все клавиши для всех элементов управления, вместо использования события нажатия клавиши формы, которое работает только тогда, когда фон сфокусирован, и это может произойти только тогда, когда ActiveControl
равно null
:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
switch ( keyData )
{
case Keys.Control | Keys.S:
timer1.Stop();
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
Таким образом, вы можете поймать любую комбинацию клавиш, которая вам нужна, и вернуть истину в случае обработки.