System.Windows.Forms.Keys枚举中的“OEM”键是什么?

时间:2009-02-24 16:16:00

标签: .net keyboard

朋友无法确定如何将“Ctrl + +”指定为ToolStripMenuItem的快捷键。我指出Keys.OemPlus键可以工作,并且需要设置快捷方式的显示字符串,但Keys枚举使我神秘。

这些“OEM”钥匙的处理方式是什么?我做了一点搜索,似乎是因为密钥只在Win2k或更高版本中得到支持,但这看起来很荒谬,因为我确信人们在Win2k之前已经使用过几十年了。为什么没有“OemEquals”? Keys枚举中是否还有其他键完全没有?

我主要是寻找这些特殊名称存在的原因的答案,但我很乐意听到有关其他问题的讨论。是否可以安全地假设因为加号位于键盘上的等号顶部,使用Keys.OemPlus并检查Shift修饰键是否可以判断是否单击了Ctrl + =?是否有其他键被省略?

请注意,这是而不是 WPF问题,尽管System.Windows.Forms.KeysSystem.Windows.Input.Key枚举看起来相同(尽管根据框架设计指南Key命名不正确;))

2 个答案:

答案 0 :(得分:28)

它们是随Windows API引入的,它们并非特定于WPF。

首先,这些是 KEY 代码,而不是字符代码:它们识别键盘上的键,而不是字符 - 例如通常在按住SHIFT键或激活CAPS LOCK的同时按A键生成'A'字符。

OEM密钥随本地键盘而变化的键。美国键盘有支架和支架,德国键盘有变音符号。

它们被称为“OEM”,因为原始设备制造商(键盘)负责定义其功能。

答案 1 :(得分:1)

OEM是指“原始设备制造商”(或与此相关的东西)。我认为这是WPF试图在某种程度上平台中立的尝试。这只是一个意见。