【问题标题】:Detect all the Key Pressed in keyboard检测键盘中按下的所有键
【发布时间】:2014-08-01 05:48:30
【问题描述】:

有没有办法检测在表单的 keydown 事件中按下的所有键? 例如,我当前按 CRTL + Alt + A 可以获取 keydown 事件中的所有键吗?我需要在我当前开发的应用程序中获取所有键来创建我自己的热键

【问题讨论】:

  • 您好,我没有把它应用到我的项目中得到所有按下的键有什么想法吗?
  • 你想知道按下了什么键吗?
  • 是的,有办法吗?

标签: c# wpf keydown


【解决方案1】:

您可以检查事件参数中的所有键

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Alt && e.Control && e.KeyCode == Keys.A)
    {
        //do something
    }
}

【讨论】:

  • 问题是关于所有键,创建一个热键组合,所以检查'e'中的每个属性不是一个好主意。
【解决方案2】:

如果你想找到按下了哪些键,你可以这样做,

     if ((Keyboard.Modifiers & ModifierKeys.Alt) == ModifierKeys.Alt) // Is Alt key pressed
        {
            if (Keyboard.IsKeyDown(Key.LeftCtrl) && Keyboard.IsKeyDown(Key.A))
            {
                MessageBox.Show("Key pressed"); 
            }
       }

【讨论】:

  • 它没有得到我按下的所有键感谢您的努力
  • @bRaNdOn 试试我修改后的答案
猜你喜欢
  • 2018-10-24
  • 1970-01-01
  • 2013-04-07
  • 1970-01-01
  • 1970-01-01
  • 2019-05-21
  • 2017-02-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多