最近开发一款软件,发现如果一个窗口上有多个输入控件,当我们改变第一个输入控件的输入法时,其它控件的输入法不会改变(像一些常见的软件,输入法只用切换一回),比较郁闷,在网上搜索良久,终于找到解决方法了。
原文地址:在C#应用程序中控制输入法以及如何用C#控制当前输入法
代码如下(放到Form_Load中就可以了):
代码
if(InputLanguage.DefaultInputLanguage.LayoutName.IndexOf("Keyboard")==-1 && InputLanguage.DefaultInputLanguage.Culture.Name.Equals("zh-CN"))
{
InputLanguage.CurrentInputLanguage=InputLanguage.DefaultInputLanguage;
}
else
{
foreach(InputLanguage lang in InputLanguage.InstalledInputLanguages)
{
if(lang.Culture.Name.Equals("zh-CN") && lang.LayoutName.IndexOf("Keyboard")==-1)
{
InputLanguage.CurrentInputLanguage=lang;
break;
}
}
}
{
InputLanguage.CurrentInputLanguage=InputLanguage.DefaultInputLanguage;
}
else
{
foreach(InputLanguage lang in InputLanguage.InstalledInputLanguages)
{
if(lang.Culture.Name.Equals("zh-CN") && lang.LayoutName.IndexOf("Keyboard")==-1)
{
InputLanguage.CurrentInputLanguage=lang;
break;
}
}
}