C#会自动在不同的文本框中使用不同的键盘布局吗?

时间:2017-04-02 10:58:49

标签: c# visual-studio

我希望有三个用于用户输入的文本框,但是对于每个文本框,我希望在输入文本时使用不同的键盘布局(无需手动更改kayboard布局)。

在textxbox 1中,我想在写作时使用普通(瑞典语)键盘布局。在第二个我想有日本平假名布局。在第三部分,我也希望有日本片假名布局。

有可能吗?

现在我必须使用Windowskey + Space手动更改键盘布局(这会循环显示所有键盘布局)。

1 个答案:

答案 0 :(得分:0)

希望这适合你:

private void textBox1_Enter(object sender, EventArgs e)
{
    // Get index of current Input Language
    int currentLang = InputLanguage.InstalledInputLanguages.IndexOf(InputLanguage.CurrentInputLanguage);
    // Calculate next Input Language
    InputLanguage nextLang = ++currentLang == InputLanguage.InstalledInputLanguages.Count ? InputLanguage.InstalledInputLanguages[0] : InputLanguage.InstalledInputLanguages[currentLang];
    // Change current Language to the calculated:
    ChangeInputLanguage(nextLang);
}

public void ChangeInputLanguage(InputLanguage InputLang)
{
    // Check is this Language really installed. Raise exception to warn if it is not:
    if (InputLanguage.InstalledInputLanguages.IndexOf(InputLang) == -1)
            throw new ArgumentOutOfRangeException();
    // InputLAnguage changes here:
    InputLanguage.CurrentInputLanguage = InputLang;
}

以下是参考链接 - Change Input Language programmatically?