小编ami*_*ein的帖子

如何自动更改TextBox的语言

我在c#中有一个Winforms应用程序,我希望TextBox在聚焦时自动更改语言.

我试过这段代码:

private void textBox1_Enter(object sender, EventArgs e)
{
    SetKeyboardLayout(GetInputLanguageByName("fa"));
}
private void textBox1_Leave(object sender, EventArgs e)
{
    SetKeyboardLayout(GetInputLanguageByName("eng"));
}
public static InputLanguage GetInputLanguageByName(string inputName)
{
    foreach (InputLanguage lang in InputLanguage.InstalledInputLanguages)
    {
        if (lang.Culture.EnglishName.ToLower().StartsWith(inputName))
        {
            return lang;
        }
    }
    return null;
}
private void SetKeyboardLayout(InputLanguage layout)
{
    InputLanguage.CurrentInputLanguage = layout;
}
Run Code Online (Sandbox Code Playgroud)

但是当我输入textBox时,语言不会改变.我能做什么?

c# winforms

10
推荐指数
1
解决办法
7903
查看次数

标签 统计

c# ×1

winforms ×1