键枚举 C#、AltKey

Posted

技术标签:

【中文标题】键枚举 C#、AltKey【英文标题】:Keys enumeration C#, AltKey 【发布时间】:2013-02-23 13:12:30 【问题描述】:

三个修饰键是 Control、Alt 和 Shift。 在按键枚举中,有Control和ControlKey、Shift和ShiftKey和Alt,但是缺少AltKey。

Keys.ControlKey 指的是实际的 Ctrl 键,而 Keys.Control 指的是控件修改。 同样,Keys.ShiftKey 指的是实际的 Shift 键,而 Keys.Shift 指的是移位修改。

实际的 Alt 键呢? 可以自己按下,Keys枚举中对应的元素应该是Keys.AltKey!

您能解释一下 Keys 枚举中缺少 vlaue Keys.AltKey 吗?

【问题讨论】:

【参考方案1】:

实际上,Alt 键的真正键(不是修饰符)枚举值为Keys.Menu,其值为18。这只是一个命名约定。他们决定将Alt 名称仅用于修饰符,将Menu 用于非修饰符。有趣的是,Keys.Menu 的文档说“ALT 键”。我们还有Keys.LMenuKeys.RMenu

【讨论】:

【参考方案2】:

我猜我会说缺少 Alt 键是由于在 WinForms 开发中,用于设置快捷键的范例是在字母前加上 & 字符,例如 @987654322 @。当应用程序运行时,它会自动设置为快捷命令 Alt+X。大多数 Windows 快捷键在开发中都是以这种方式设置的,几乎消除了您想要在代码中检测它的任何原因 - 或者至少是 KeyDown 事件。也就是说,我个人希望 Alt 键可用。

【讨论】:

以上是关于键枚举 C#、AltKey的主要内容,如果未能解决你的问题,请参考以下文章

C# 枚举器和可枚举类型

C#枚举

澄清 C# 字典上的读写

c#中怎样定义枚举?

c# 枚举的定义,枚举的用法,获取枚举值

C#啥是枚举呢?