.NET的Windows应用程序对中文输入法支持的问题 【转载】
2009-06-12 00:48
375 查看
该篇文章是我于2009年6月10日通过自己编写的工具,批量从位于在博客园的博客站点(http://chenxizhang.cnblogs.com)同步而来。文章中的图片地址仍然是链接到博客园的。特此说明!陈希章原文地址:http://www.cnblogs.com/chenxizhang/archive/2009/03/12/1409763.html原文标题:.NET的Windows应用程序对中文输入法支持的问题 【转载】 原文发表:2009/3/12 8:28:00 |
具体表现如下:
比如有一个Form1上有一个TextBox1,两者的ImeMode属性都为NoControl。
运行程序,弹出Form1,光标停留在TextBox1中,此时按下Ctrl+Shift或者Ctrl+Space打开输入法,会发现输入法状态条是灰的,必须用鼠标点击一下输入法状态条或者再次按下Ctrl+Shift或者Ctrol+Space才能正常激活输入法输入中文. 2、输入法打开时自动切换成全角状态的问题
具体表现如下:
比如有一个Form1上有一个TextBox1和TextBox2,三者的ImeMode属性都为On。
运行程序,弹出Form1,光标停留在TextBox1中,因TextBox1的ImeMode属性为On,不会出现上述的问题(1)了,但输入法调出来的时候就是全角状态,手工切换会半角,输入几个文字,再把光标移动到TextBox2中,又变成了全角了。。。 幸运的是,对于每一个TextBox控件(不仅仅TextBox),问题(1)和(2)都只会出现一次。如果重新打开窗体,还会再次出现,很明显是.NET程序上的逻辑错误,没有处理好“第一次”的问题。
补充一点:根据网上的讨论,上述问题是否会出现还和用户具体使用的输入法有关系,极端情况是无论怎么折腾都输不进汉字。 问题的根结不在VS2005,而是在.NET Framework 2.0,微软已经为此问题提供了补丁,但根据反馈表明,问题依然存在,网上也有人提出了一些间接的解决办法,但效果差强人意。 相对简单的处理办法: (1)对于可能会输入中文的控件,一律ImeMode属性为On (2)对于不可以输入中文的控件(电话,QQ号等),一律ImeMode属性为Disable
作者:陈希章 出处:http://blog.csdn.net/chen_xizhang 本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |
相关文章推荐
- .NET的Windows应用程序对中文输入法支持的问题 【转载】
- 彻底解决pycharm输入法中文支持问题
- .Net应用程序发布问题的解决方案(转载,未经测试)
- .Net平台下开发中文语音应用程序 【转载】
- 解决Ext Grid导出Excel在JSP等环境中文乱码问题(支持Windows和Aix)
- 【转载】小问题解决之:ubuntu下gedit 打开windows下文件出现中文乱码
- .Net平台下开发中文语音应用程序 【转载】
- Git 系列之二:Windows 下 Git 客户端的选择,及 msysGit 各种中文问题的解决-转载
- 在windows应用程序中运行asp.net程序的中文乱码问题
- .Net平台下开发中文语音应用程序(转载)
- 转载" 解决Komodo中文支持问题
- 【转载】中文输入法下onKeyPress不能触发的问题
- [转载] linux下打开windows txt文件中文乱码问题
- windows中git中文支持问题备忘[转]
- 解决 Git 在 windows 下中文乱码的问题(转载)
- Windows 下 Git 客户端的选择,及 msysGit 各种中文问题的解决-转载
- windows远程连接linux不能切换中文输入法的问题
- emacs ctr+space windows下被中文输入法占用问题
- linux下打开windows txt文件中文乱码问题 (转载)
- Git 系列之二:Windows 下 Git 客户端的选择,及 msysGit 各种中文问题的解决-转载