Вы можете создать базовую форму для своего приложения и установить для свойства keypreview значение true и обработать событие keydown, чтобы все ваши формы имели одинаковое определение ключа.
Вы также можете использовать следующую процедуру для регистрации горячей клавиши для ваших форм, но в этом методе вам потребуется вызывать один и тот же метод при событии загрузки каждой формы.
protected override bool ProcessCmdKey(ref Message message, Keys keys)
{
switch (keys)
{
case Keys.F2 | Keys.Control:
//Process action here.
return false;
}
return false;
}
Вы также можете использовать следующие неуправляемые методы из user32.dll, но, конечно, я бы не советовал.
static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, uint virtualKey);
private static extern bool UnregisterHotKey(IntPtr hWnd, int id);