C#在不同的文本框中自动使用不同的键盘布局?
问题描述:
我想为用户输入三个文本框,但对于每个文本框,我希望在输入文本时使用不同的键盘布局(无需手动更改Kayboard布局)。C#在不同的文本框中自动使用不同的键盘布局?
在textxbox 1中,我希望在写入时使用我的普通(瑞典语)键盘布局。在第二个我想有日本平假名布局。而在第三,我想也有日本片假名布局。
可以吗?
因为它现在我必须手动更改键盘布局与Windowskey +空间(这循环所有键盘布局)。
答
希望这对你的作品:
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?
,我发现这个链接:http://stackoverflow.com/questions/24080477/how-i-can- wpf中的change-language-textbox我认为那里的答案应该有所帮助,但我还没有自己测试过。 – FCin