winform中怎样自动将输入法切换到中文,如将光标移动到一个输入姓名的文本框时,系统自动切换到中文输入法

解决方案 »

  1.   

    设置文本框的ImeMode属性,具体说明请查阅MSDN。
      

  2.   

    IMEMODE=ON
    SENDKEYS.SEND("^{SPACE}")
      

  3.   

    private void textBox1_Enter(object sender, EventArgs e)
      {
      InputLanguage il = InputLanguage.InstalledInputLanguages[0];
      InputLanguage.CurrentInputLanguage = il;
      }
      private void textBox1_Leave(object sender, EventArgs e)
      {
      InputLanguage il = InputLanguage.InstalledInputLanguages[1];
      InputLanguage.CurrentInputLanguage = il;
      } 
      

  4.   


       //获取系统中已经安装的文字输入法
       InputLanguageCollection MyInputs=InputLanguage.InstalledInputLanguages;
       //将输入法的名称添加组合框中
       foreach(InputLanguage MyInput in MyInputs)
        this.comboBox1.Items.Add(MyInput.LayoutName);
       //获取当前输入法信息
       InputLanguage CurrentInput=InputLanguage.CurrentInputLanguage;
       this.textBox1.Text=CurrentInput.LayoutName;
       //获取输入法的语言区域
       this.textBox3.Text=CurrentInput.Culture.DisplayName;
       //获取默认的输入法信息
       InputLanguage DefaultInput=InputLanguage.DefaultInputLanguage;
       this.textBox2.Text=DefaultInput.LayoutName;
      }  private void comboBox1_SelectedIndexChanged(object sender, System.EventArgs e)
      {//设置当前输入法
       //获取选择的输入法
       InputLanguage MyInput=InputLanguage.InstalledInputLanguages[this.comboBox1.SelectedIndex];
       //设置当前输入法
       InputLanguage.CurrentInputLanguage=MyInput;
       //获取当前输入法信息
       InputLanguage CurrentInput=InputLanguage.CurrentInputLanguage;
       this.textBox1.Text=CurrentInput.LayoutName;
       //获取输入法的语言区域
       this.textBox3.Text=CurrentInput.Culture.DisplayName;
       //获取默认的输入法信息
       InputLanguage DefaultInput=InputLanguage.DefaultInputLanguage;
       this.textBox2.Text=DefaultInput.LayoutName; 
      

  5.   

    因为你不知道客户电脑安装了什么输入法,我觉得要切换到中文只能通过遍历我的方法是private void textBox1_Enter(object sender, EventArgs e)
      {
           string[] languagename = new string[]{"拼音","五笔","中文"};
           for(int i=0;i<languagename.Length;i++)
           {          
              foreach (InputLanguage lang in InputLanguage.InstalledInputLanguages)
              {
                 if (lang.LayoutName.IndexOf(languagename[i]) >= 0)
                 {
                     InputLanguage.CurrentInputLanguage= lang;
                     break;
                 }
              }
           }
        }
      

  6.   

    楼上说的几个imeMode无法切换输入法这点我比较认同如梦大大的意思
      

  7.   

            private void textBox1_Enter(object sender, EventArgs e)
            {
                //获取系统中已经存在的输入法
                foreach (InputLanguage il in ilcollection)
                {
                    if (il.LayoutName == "中文 (简体) - 搜狗拼音输入法")
                    {
                        //设置当前输入法
                        InputLanguage.CurrentInputLanguage = il;
                        this.label1.Text = "当前输入法是" + InputLanguage.CurrentInputLanguage.LayoutName;
                        break;
                    }
                }
            }不知道这样对否
      

  8.   


    你这个也不好,最好使用indexof来寻找中文输入法,如果按照你这种写法,你就要知道所有的中文输入法的名字了,不如用indexof来找“中文”或其他关键词好