解決KeyCode 229(KeyData 229)的問題


在開發中遇到一個問題:

主界面繼承Form的方法

protected override Boolean ProcessCmdKey(ref Message msg, Keys keyData)


用來截獲輸入的助記碼(數字或字母),但是當輸入法切換到中文狀態後,輸入字母時獲得的keyData總是229。(非主界面沒有遇到此問題,很奇怪)

在網上查了資料才知道是被輸入法截流了,因此要實現在中文狀態下能正常獲得輸入的字母,就必須把ImeMode設置爲Disable。 

在主界面的構造函數中輸入正面的代碼就可以了。

base.ImeMode = ImeMode.Disable; // 因在中文輸入法下無法截獲正確英文字符,所以將輸入法禁用

修改後主界面仍可切換輸入法,也不影響其它界面切換輸入法和中文輸入。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章