我在檢測按鍵時遇到問題。所有字符都在QUERTY鍵盤上工作,但我知道AZERTY鍵盤上某些字符的問題。檢測AZERTY鍵盤上的某些鍵?
例如,當在AZERTY鍵盤上按下\時,它被賦予226(â)的鍵碼。
如何確保跨鍵盤佈局的行爲一致?我預計內置的事件處理是一致的。
我在檢測按鍵時遇到問題。所有字符都在QUERTY鍵盤上工作,但我知道AZERTY鍵盤上某些字符的問題。檢測AZERTY鍵盤上的某些鍵?
例如,當在AZERTY鍵盤上按下\時,它被賦予226(â)的鍵碼。
如何確保跨鍵盤佈局的行爲一致?我預計內置的事件處理是一致的。
您可能首先需要detect the keyboard layout,然後使用不同的鍵碼進行字符映射。
我根本無法重現。反斜槓由AZERTY鍵盤組成,方法是先按住AltGr,然後在字母上方的數字行上按下鍵。當你做了以下KeyDown
事件被觸發:
在另一方面,如果立即按鍵的W¯¯然後KeyDown
用邀請碼OemBackslash和鍵值226左側被激發,並且<
字符出現在文本框中。
我不知道你的鍵盤佈局是否設置不正確,以匹配你的特定鍵盤。我假設你的鍵盤看起來像這個維基頁面上的圖像:http://en.wikipedia.org/wiki/AZERTY
是的,不同的鍵盤佈局給出了不同的鍵碼。 documentation將VK_OEM_102
(鍵碼226)描述爲"<>" or "\|" on RT 102-key keyboard
,所以鍵碼甚至不應該對應於單個特定字符。
要查看某個鍵對應哪個字符,請使用MapVirtualKey函數。然後你可以檢查它是否是反斜槓。
您可能能夠檢查鍵佈局。我不知道這個功能。問題:是否有人使用谷歌了? –
向我們展示如何獲取按鍵 –
我正在使用RichTextBox的標準KeyDown事件並檢查e.KeyCode。 –