C# 更改输入语言有什么作用?

C# 更改输入语言有什么作用?,c#,.net,winforms,C#,.net,Winforms,我正在查看表单的一些代码,请参见以下内容: void SomeTextBox_Enter(object sender, EventArgs e) { InputLanguage.CurrentInputLanguage = GetLocalLanguage(DataModel.Country); SomeTextBox.ImeMode = ImeMode.On; } 其中GetLocalLanguage()通过InputLanguage.InstalledInputLangua

我正在查看表单的一些代码,请参见以下内容:

void SomeTextBox_Enter(object sender, EventArgs e)
{
    InputLanguage.CurrentInputLanguage = GetLocalLanguage(DataModel.Country);
    SomeTextBox.ImeMode = ImeMode.On;
}
其中
GetLocalLanguage()
通过
InputLanguage.InstalledInputLanguages
并返回特定于国家/地区的语言(如果适用)


此代码的目的是什么?为什么要更改输入语言?

输入语言元素只是所有输入语言数据的容器。 有一个名为“CurrentInputLanguage”的子项,可以从表单自己的语言(在参考资料中定义)设置和重写它

在我所有的测试中,我得出的结论是所有的变化都被忽略了

  • 键盘输入不会改变。钥匙还是一样的
  • 格式不变。数字和解析的值不会更改格式

我假设这个值应该是只读的。

我认为主要是在多线程环境中,以确保当前线程具有正确的InputLanguage<代码>获取或设置当前线程的输入语言。From“输入语言是区域性/键盘布局对,用于确定键盘上的物理键如何映射或打印到语言中的字符。输入语言基于Windows输入区域设置标识符,如平台SDK函数GetKeyboardLayout返回的标识符。输入区域设置标识符也被称为键盘布局(HKL)值的句柄。”——因此,它可能是用于支持不同的键盘布局/语言。(续)应用程序是否“期望”“主要由一个特定区域使用?我不确定不同的输入语言是否会以不同的方式翻译关键代码。所以这可能与此有关。@sab669 lol是你道格吗?我觉得用户名看起来很熟悉。。。。我不在家(在北卡罗来纳州呆了几个星期),或者我会发脾气聊天:)这里提到了一个用途-。因此,也许在你的情况下,它会根据国家自动切换键盘,这是不正确的。我必须说。看看这个答案:你肯定还有其他问题。你能不能编辑你的帖子,这样就可以清楚地知道这是你的特例?