【转】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; }