将System.Windows.Forms.Shortcut转换为KeyData / KeyCode

时间:2011-11-15 16:21:45

标签: c# vb.net winforms

是否有一种简单的方法可以获得该枚举中某些值的相应keydata(键码组合)?

我找不到一个,为所有这些创建一个switch语句有点矫枉过正......

枚举元素的整数值不是键码,而是一些“未知”的大数字,因此简单地转换为int将不起作用。

2 个答案:

答案 0 :(得分:2)

可以直接转换System.Windows.Forms.Shortcut和System.Windows.Forms.Keys(它们的整数值匹配)。

Keys keys = (Keys) Shortcut.CtrlL;

答案 1 :(得分:1)

较低的4个字节是键,而较高的4个字节是Shift,Ctrl和Alt-Key的掩码,因此您可以使用以下内容获取KeyCode:

Shortcut shortcut = Shortcut.ShiftDel;
Debug.Print((((int)shortcut) & 0xFFFF).ToString());

将输出46,这是del key的代码。