在開發中遇到一個問題:
主界面繼承Form的方法
protected override Boolean ProcessCmdKey(ref Message msg, Keys keyData)
用來截獲輸入的助記碼(數字或字母),但是當輸入法切換到中文狀態後,輸入字母時獲得的keyData總是229。(非主界面沒有遇到此問題,很奇怪)
在網上查了資料才知道是被輸入法截流了,因此要實現在中文狀態下能正常獲得輸入的字母,就必須把ImeMode設置爲Disable。
在主界面的構造函數中輸入正面的代碼就可以了。
base.ImeMode = ImeMode.Disable; // 因在中文輸入法下無法截獲正確英文字符,所以將輸入法禁用
修改後主界面仍可切換輸入法,也不影響其它界面切換輸入法和中文輸入。