【转】Winform输入法控制

来源:http://blog.itpub.net/23109131/viewspace-630576

想实现输入法切换:思路,找出当前系统所有输入法总个数,当前输入法在总输入法中的索引,通过改变索引值,来切换输入法

void input()
{
 
//变全角为半角的输入状态
            this.ImeMode = ImeMode.KatakanaHalf;
 
//获取总输入法个数
            int c = InputLanguage.InstalledInputLanguages.Count;
//获取当前输入法语言在所有输入法中的索引值
           int index= InputLanguage.InstalledInputLanguages.IndexOf(InputLanguage.CurrentInputLanguage);
 
 index++;//表示下一个输入法索引
           if (index == c)
           {//  如果当前索引值和总输入法个数相同,让索引从头开始
               index = 0;
             
           }
//设置当前输入法  
InputLanguage.CurrentInputLanguage = InputLanguage.InstalledInputLanguages[index];
}

如果想把状态加到comboxedit控件中

/// <summary>
        /// 初始化输入法状态
        /// </summary>
        void InitIme()
        {
            this.cbxIme.ImeMode = ImeMode.Off;
            //获取所有己安装的输入法
            InputLanguageCollection ilc = InputLanguage.InstalledInputLanguages;
            foreach (InputLanguage item in ilc)
            {
                this.cbxIme.Properties.Items.Add(item.LayoutName);
            }
            this.cbxIme.SelectedIndex = 0;
            //切换系统输入法
            this.cbxIme.SelectedIndexChanged += new EventHandler(cbxIme_SelectedIndexChanged);
         
        }
        //切换系统输入法
        void cbxIme_SelectedIndexChanged(object sender, EventArgs e)
        {
            //得到输入法
            InputLanguage ime = InputLanguage.InstalledInputLanguages[cbxIme.SelectedIndex];
            
            //设置输入法
            InputLanguage.CurrentInputLanguage = ime;
        }
原文地址:https://www.cnblogs.com/chenlh/p/3803517.html