在开发中遇到一个问题:
主界面继承Form的方法
protected override Boolean ProcessCmdKey(ref Message msg, Keys keyData)
用来截获输入的助记码(数字或字母),但是当输入法切换到中文状态后,输入字母时获得的keyData总是229。(非主界面没有遇到此问题,很奇怪)
在网上查了资料才知道是被输入法截流了,因此要实现在中文状态下能正常获得输入的字母,就必须把ImeMode设置为Disable。
在主界面的构造函数中输入正面的代码就可以了。
base.ImeMode = ImeMode.Disable; // 因在中文输入法下无法截获正确英文字符,所以将输入法禁用
修改后主界面仍可切换输入法,也不影响其它界面切换输入法和中文输入。