2011-11-15 12 views
2

その列挙型の値の対応するキーデータ(キーコードの組み合わせ)を簡単に取得する方法はありますか?System.Windows.Forms.ShortcutをKeyData/KeyCodeに変換します

私は1つを見つけ、そしてすべての人のためのswitch文の作成は少し行き過ぎであることができない...

列挙型の要素の整数値は、キーコードではなく、いくつかの「不明」大きな数字は、そう簡単にキャスティングintには動作しません。

答えて

1

下位4つのバイトがキーであり、あなたはこのようなものでキーコードを得ることができるので、上位4つのバイトは、Shiftキー、CtrlキーとAltキーキーのマスクです:

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

ウィル出力46 delキーのコードです。

+0

nice catch! thnx –

2

System.Windows.Forms.ShortcutおよびSystem.Windows.Forms.Keysは、直接キャストできます(その整数値は一致します)。

Keys keys = (Keys) Shortcut.CtrlL; 
+0

@Denis:私の答えに例を追加する努力に感謝しますが、 "おそらく" 2回は私に合っていません、申し訳ありません。代わりにあなた自身の答えを提供するか、コメントを追加することができます。 –

関連する問題