ControlKey和ShiftKey(以及菜單 - 您將假定該名稱將爲 ,名稱爲AltKey)表示物理鍵本身。換句話說,它們是 是「實際」鍵,並且可以在KeyEventArgs對象的KeyCode屬性中找到它們。
另一方面,控件,Shift和Alt將永遠不會出現在KeyCode 屬性中,但它們的值可以在KeyData屬性中找到。看起來 你從來沒有真正需要使用這些常量,因爲框架 已經通過 KeyEventArgs對象的Alt,Control和Shift屬性爲你抽出它們,但你可以使用它們來測試KeyData 屬性if你真的想要。
Source with Examples。
編輯爲您編輯:
看時, 「A」 鍵後返回的值:
一個(未移動)/ 41/41
A(Shift + A鍵)/一萬○四十一分之四十一
按Ctrl + A /20041分之41
的 「邀請碼」,在這種情況下是= 41對於所有的改性劑。如果你關心的是主按鈕,在這種情況下「a」,你可以在代碼中使用它。
如果你想有,如果修改按下你需要得到更具體和參考「KEYDATA」領域,並尋找表示的某一改性劑#根據不同的功能。在這種情況下,「100」代表換檔,「200」代表在現場開始時的控制。
這並不是說你不能只檢查了「41」的KEYDATA場結束,但我從來沒有一個抱怨的便利。
這將是安全地說,「差異化」你在你的第一個問題,尋找它們之間是指向不同的屬性字段。
編輯其他相關性: 與鍵值結合使用的鍵修飾符值與捷徑枚舉成員直接相關。例如: Shortcut.CtrlF8(0x20077)與Keys.Control | Keys.F8(0x20000 | 0x77)
當處理菜單項的定義的快捷方式屬性時,這可能很有用。
您可以使用Keys.Control來檢查用戶是否按住Ctrl鍵。以檢測Ctrl + C爲例。您使用Keys.ControlKey檢測用戶按Ctrl鍵。除非你寫遊戲,否則這是不尋常的。 –