------解决方案-------------------- using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices;
namespace InputLanguageSwitch { /// <summary> /// 获取系统所有的输入法,并可以程序改变当前输入法;打开关闭软键盘。 /// </summary> public partial class Form1 : Form { public Form1() { InitializeComponent(); //this.InputLanguageChanged += new InputLanguageChangedEventHandler(Form1_InputLanguageChanged); }
//void Form1_InputLanguageChanged(object sender, InputLanguageChangedEventArgs e) //{ // //throw new Exception("The method or operation is not implemented."); // for( int i=0;i<comboBox1.Items.Count;i++) // { // if (InputLanguage.CurrentInputLanguage.LayoutName == comboBox1.Items[i].ToString()) // { // comboBox1.SelectedIndex = i; // }
// } //}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { string strTemp = comboBox1.Items[comboBox1.SelectedIndex].ToString(); InputLanguageCollection collects = InputLanguage.InstalledInputLanguages; for (int i = 0; i < collects.Count; i++) { if (collects[i].LayoutName == strTemp) InputLanguage.CurrentInputLanguage = collects[i]; }
}
private void Form1_Load(object sender, EventArgs e) { InputLanguageCollection collects = InputLanguage.InstalledInputLanguages; for (int i = 0; i < collects.Count; i++) { comboBox1.Items.Add(collects[i].LayoutName); } comboBox1.SelectedIndex = collects.IndexOf(InputLanguage.CurrentInputLanguage); }