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

C# 将System.Windows.Forms.Shortcut转换为KeyData/KeyCode,c#,vb.net,winforms,C#,Vb.net,Winforms,是否有一种简单的方法可以为该枚举中的某个值获取相应的keydata(keycode组合) 我找不到一个,为所有这些创建一个switch语句有点过分了 枚举元素的整数值不是键码,而是一些“未知”的大数字,因此简单地强制转换为int将不起作用。下面的4个字节是键,上面的4个字节是Shift、Ctrl和Alt键的掩码,因此您可以通过如下方式获得键码: Shortcut shortcut = Shortcut.ShiftDel; Debug.Print((((int)shortcut) & 0x

是否有一种简单的方法可以为该枚举中的某个值获取相应的keydata(keycode组合)

我找不到一个,为所有这些创建一个switch语句有点过分了


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

下面的4个字节是键,上面的4个字节是Shift、Ctrl和Alt键的掩码,因此您可以通过如下方式获得键码:

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

将输出del键的代码
46

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


@丹尼斯:我很感激为我的答案添加了一个例子,但是“可能”两次不适合我,对不起。您可以提供自己的答案,或者添加评论。
Keys keys = (Keys) Shortcut.CtrlL;