• .NET的Windows应用程序对中文输入法支持的问题 【转载】


    以下内容转载自:http://blog.csdn.net/netcoder/archive/2009/02/18/3907472.aspx

    这不是一个新问题了,网上也不乏这方面的讨论,写出来也是为了理清自己的思路,难保以后不会碰到类似的问题。

    主要有两种表现:

    1、首次切换输入法失败的问题
    具体表现如下:
    比如有一个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

  • 相关阅读:
    D3.js中对array的使用
    kibana中信息分类查询显示的方法
    JAVA异常机制简述
    Google Web Toolkit(GWT) 在windows下环境搭建
    zico源代码分析(二) 数据读取和解析部分
    zico源代码分析(一) 数据接收和存储部分
    eclipse中导入zico Maven项目
    Zorka和zico实现不同主机之间的交互
    【转载】使用logstash+elasticsearch+kibana快速搭建日志平台
    LA 3644 易爆物 并查集
  • 原文地址:https://www.cnblogs.com/chenxizhang/p/1409763.html
Copyright © 2020-2023  润新知