メインフォームから、次のことを行う必要があります。
- KeyPreviewを必ずtrueに設定してください(デフォルトではTRUE)。
- MainForm_KeyDown(..)を追加します。これにより、必要なショートカットをここで設定できます。
さらに、これをグーグルで見つけたので、まだ回答を探している人にこれを共有したいと思いました。(グローバル)
私はあなたがuser32.dllを使用している必要があると思います
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
if (m.Msg == 0x0312)
{
/* Note that the three lines below are not needed if you only want to register one hotkey.
* The below lines are useful in case you want to register multiple keys, which you can use a switch with the id as argument, or if you want to know which key/modifier was pressed for some particular reason. */
Keys key = (Keys)(((int)m.LParam >> 16) & 0xFFFF); // The key of the hotkey that was pressed.
KeyModifier modifier = (KeyModifier)((int)m.LParam & 0xFFFF); // The modifier of the hotkey that was pressed.
int id = m.WParam.ToInt32(); // The id of the hotkey that was pressed.
MessageBox.Show("Hotkey has been pressed!");
// do something
}
}
さらにこれを読んでくださいhttp://www.fluxbytes.com/csharp/how-to-register-a-global-hotkey-for-your-application-in-c/