【问题标题】:What's the Key Enumeration of Keys on top of Non-Numpad Number Keys?非小键盘数字键之上的键的键枚举是什么?
【发布时间】:2014-08-09 16:57:10
【问题描述】:

我似乎在下面找不到某些键的 Key 枚举。我也读过这个:http://msdn.microsoft.com/en-us/library/system.windows.forms.keys.aspx 仍然没有找到(或者我可能错过了)

问题:

  1. 上图中红框键的Key枚举是什么?
  2. 在给定的链接中有Oemtilde,知道那是什么键吗?

谢谢。

(我的编程语言是 C#,我在 WPF 中编写代码)

【问题讨论】:

    标签: c# wpf keyboard keyboard-shortcuts


    【解决方案1】:

    我认为这些键没有单独的枚举。这些是 Key.D1 to Key.D0Key.Oem3(用于 tilda)。您可以通过在代码中的任何位置检查 Keyboard.Modifiers == ModifierKeys.Shift 来确定按下了哪个按钮。

    即如果按下的键是Key.D1Keyboard.ModifiersModifierKeys.Shift 这意味着'!' 被按下

    【讨论】:

    • 只要确保你用(e.KeyboardDevice.Modifiers & ModifierKeys.Shift) == ModifierKeys.Shift检查修饰符,因为一次可以按下多个修饰键。
    • 如果我使用例如if(Keyboard.IsKeyDown(Key.LeftCtrl)||Keyboard.IsKeyDown(Key.RightCtrl)){//Code} 检查修饰符有什么区别?只是为了简化代码吗?
    【解决方案2】:

    如何运行应用程序,按下键盘上的键并检查 KeyEventArgs.Key 的值?

    private void MainWindow_OnKeyDown(object sender, KeyEventArgs e)
    {
        Console.WriteLine(e.Key);
    }
    

    显示 tilda 的 Oem3。

    【讨论】:

    • 它总是检测到LeftShift + Something,而不是Key 名称本身。或者也许这就是我们需要访问它的方式,因为它没有特定的名称?
    猜你喜欢
    • 2019-11-19
    • 1970-01-01
    • 1970-01-01
    • 2018-08-21
    • 1970-01-01
    • 2016-08-31
    • 1970-01-01
    • 2016-01-13
    • 2012-10-26
    相关资源
    最近更新 更多