解决KeyCode 229(KeyData 229)的问题


在开发中遇到一个问题:

主界面继承Form的方法

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


用来截获输入的助记码(数字或字母),但是当输入法切换到中文状态后,输入字母时获得的keyData总是229。(非主界面没有遇到此问题,很奇怪)

在网上查了资料才知道是被输入法截流了,因此要实现在中文状态下能正常获得输入的字母,就必须把ImeMode设置为Disable。 

在主界面的构造函数中输入正面的代码就可以了。

base.ImeMode = ImeMode.Disable; // 因在中文输入法下无法截获正确英文字符,所以将输入法禁用

修改后主界面仍可切换输入法,也不影响其它界面切换输入法和中文输入。

你可能感兴趣的:(疑难异常解决办法,C#)