【发布时间】:2011-08-01 17:55:02
【问题描述】:
我知道如何获取在 C# 中按下了哪个修饰键,但我不知道如何实际检查是否按下了任何修饰键。我需要在 KeyUp 事件中检查它,除了做类似 if(e.KeyCode != Keys.Control && e.KeyCode != Keys.Alt && ...) 的事情之外,还有其他方法吗?谢谢。
【问题讨论】:
我知道如何获取在 C# 中按下了哪个修饰键,但我不知道如何实际检查是否按下了任何修饰键。我需要在 KeyUp 事件中检查它,除了做类似 if(e.KeyCode != Keys.Control && e.KeyCode != Keys.Alt && ...) 的事情之外,还有其他方法吗?谢谢。
【问题讨论】:
if ((Control.ModifierKeys & Keys.Shift) != 0)
将帮助您检测是否按下了修饰键(例如 ctrl 或 shift)。 查看下面的帖子以供参考:
【讨论】:
KeyEventArgs 类具有您可以检查的属性。例如,要查看 Alt 键是否被按下,您可以这样写:
if (e.Alt)
{
// Alt key was pressed
}
【讨论】:
要确保没有按下修饰键,您可以检查 ModifierKey 是否等于 Keys.None。
if (ModifierKeys == Keys.None) ...
【讨论】: