在一个C#的textbox中指定输入法状态为半角,而全角输入时是不可用,如何编写?我实现了几次,实现不了。。谢谢大家啦,以下是我的代码:
   nametextBox.ImeMode = System.Windows.Forms.ImeMode.Off;
不起作用啊,是否需要别的什么判断?请大虾们完善一下....

解决方案 »

  1.   


    /**//// 
            /// 转全角的函数(SBC case)
            /// 
            /// 任意字符串
            /// 全角字符串
            ///
            ///全角空格为12288,半角空格为32 ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
            ///        
            public string ToSBC(string input)
            {
                //半角转全角:
                char[] c=input.ToCharArray();
                for (int i = 0; i < c.Length; i++)
                {
                    if (c[i]==32)
                    {
                        c[i]=(char)12288;
                        continue;
                    }
                    if (c[i]<127)
                        c[i]=(char)(c[i]+65248);
                }
                return new string(c);                
            }
            /**//// 
            /// 转半角的函数(DBC case)
            /// 
            /// 任意字符串
            /// 半角字符串
            ///
            ///全角空格为12288,半角空格为32
            ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
            ///
            public string ToDBC(string input)
            {    
                char[] c=input.ToCharArray();
                for (int i = 0; i < c.Length; i++)
                {
                    if (c[i]==12288)
                    {
                        c[i]= (char)32;
                        continue;
                    }
                    if (c[i]>65280 && c[i]<65375)
                        c[i]=(char)(c[i]-65248);
                }    
                return new string(c);
            }