2012-01-11 60 views
4

我一直在尋找答案,但我似乎無法找到任何東西。有誰知道你是否可以在Keys中確定字母套?System.Windows.Forms.Keys - 低位或大寫?

例如:

if (System.Windows.Forms.Keys.A.ToString() == "A") 
{ 
    // Upper or Lower? 
} 

感謝。

回答

6

沒有外殼,它代表鍵盤上的物理鍵。你在鍵盤上看到'a'和'A'了嗎?

您可以檢查並查看Shift鍵是否被按下。

+0

好點,我從來沒有想到,謝謝:) – 2012-01-11 16:52:33

+0

你不應該檢查shift鍵。鍵和字符之間根本沒有直接映射。 – CodesInChaos 2012-01-11 16:53:48

+0

我沒有說檢查換檔鍵,我說檢查換檔鍵。有不止一個,還有處理密碼的鑰匙。 – 2012-01-11 17:42:02

3

System.Windows.Forms.Keys.A代表鍵盤上的物理鍵A。它沒有案件。因此,你的問題沒有意義。

如果您想要檢查用戶是否在密鑰箱上持有Shift密鑰,那麼還有System.Windows.Forms.Keys.Shift

2

鍵和字符之間沒有簡單的映射。鍵盤佈局可以以不同方式工作。一個例子是死鎖。一旦你到達IME,它變得更加複雜。不要嘗試在應用程序中手動複製鍵盤佈局。

如果您想獲取用戶輸入的字符,請處理WM_CHAR而不是WM_KEY_DOWN/UP。它以winforms形式暴露爲Control.KeyPress事件。