确定是否按下了修改键

4

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

3个回答

12
if ((Control.ModifierKeys & Keys.Shift) != 0) 

这将帮助您检测修饰键(例如ctrlshift)是否被按下。请参考下面的帖子:

如何检测当前按下的键?


使用正确的 "&" 运算符替换 "&&" 运算符。("错误:运算符 '&&' 不能应用于类型为 'System.Windows.Forms.Keys' 和 'System.Windows.Forms.Keys' 的操作数") - TechAurelian

3
为了确保没有修改键被按下,您可以检查 ModifierKey 是否等于 Keys.None。
if (ModifierKeys == Keys.None) ...

1

KeyEventArgs 类具有您可以检查的属性。例如,要查看是否按下了 Alt 键,可以编写以下代码:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接