【问题标题】:Determine whether modifier key was pressed确定是否按下了修饰键
【发布时间】:2011-08-01 17:55:02
【问题描述】:

我知道如何获取在 C# 中按下了哪个修饰键,但我不知道如何实际检查是否按下了任何修饰键。我需要在 KeyUp 事件中检查它,除了做类似 if(e.KeyCode != Keys.Control && e.KeyCode != Keys.Alt && ...) 的事情之外,还有其他方法吗?谢谢。

【问题讨论】:

    标签: c# key modifier


    【解决方案1】:
    if ((Control.ModifierKeys & Keys.Shift) != 0) 
    

    将帮助您检测是否按下了修饰键(例如 ctrlshift)。 查看下面的帖子以供参考:

    How to detect the currently pressed key?

    【讨论】:

    • 将“&&”运算符替换为正确的“&”运算符。 (“错误:运算符'&&'不能应用于'System.Windows.Forms.Keys'和'System.Windows.Forms.Keys'类型的操作数)
    【解决方案2】:

    KeyEventArgs 类具有您可以检查的属性。例如,要查看 Alt 键是否被按下,您可以这样写:

    if (e.Alt)
    {
        // Alt key was pressed
    }
    

    【讨论】:

      【解决方案3】:

      要确保没有按下修饰键,您可以检查 ModifierKey 是否等于 Keys.None。

      if (ModifierKeys == Keys.None) ...
      

      【讨论】:

        猜你喜欢
        • 2017-05-17
        • 2012-10-11
        • 2017-05-25
        • 2012-02-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多