簡體   English   中英

C# Windows Forms 應用程序熱鍵 - KeyDown 事件不起作用

[英]C# Windows Forms Applications Hotkey - KeyDown event not working

我閱讀了很多關於為 Windows Forms 應用程序制作熱鍵的問題,並嘗試了很多人說它有效的代碼,但對我來說,不知何故沒有。

代碼:

void Form1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.Control && e.KeyCode == Keys.S)   
        {
          timer1.Stop();
            e.SuppressKeyPress = true; 
        }
    }

如果您想為您的表單創建全局熱鍵管理器以供該表單中的所有控件使用,您需要覆蓋捕獲所有控件的所有鍵的Form.ProcessCmdKey()方法,而不是使用有效的表單按鍵事件只有當背景被聚焦並且只有當ActiveControlnull時才會發生:

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);
}

因此,您可以捕獲所需的任何組合鍵並在處理后返回 true。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM