我需要我的app输入语言总是俄语。以下代码在Win XP上运行正常:
public void SetNewLanguage()
{
InputLanguage myCurrentLanguage = InputLanguage.FromCulture(Thread.CurrentThread.CurrentCulture = new CultureInfo("ru-RU"));
InputLanguage.CurrentInputLanguage = myCurrentLanguage;
}
e.g。无论默认语言是什么,它都会将输入语言设置为俄语(假设安装了ru-RU文化)。
问题是在Win 8.1中调用相同的功能(也安装了ru-RU)不适用,因此输入语言保持英文。
如何让上面的代码适用于XP和Win 8?
答案 0 :(得分:1)
我不是一个真正的程序员,但我一直在努力解决类似的问题,我的应用程序在Windows 7中选择了西班牙语键盘布局,但在Windows 8.1 VM中没有#&# 39;我最近搬了VS,我似乎已经破了。
它看起来像是因为Windows 8.1默认情况下没有启用每个应用程序语言切换,因为在我按照https://superuser.com/questions/466180/set-windows-8-to-per-application-input-language-mode上的说明操作后,原始代码才有效。
然而,这是我在发现之前发现的:
我最初在program.cs中有代码,因此如果西班牙语键盘布局不可用,应用程序将无法完成启动。如果是,那就设置它并完成启动。 虽然这适用于Windows 7(并且仅针对一个应用程序设置键盘布局),但似乎Windows 8.1在屏幕上可见形式之前不会打开。
为了让它在Windows 8中运行,我不得不在主窗体上插入一个Load事件并在那里设置键盘布局:
private void Form1_Load(object sender, EventArgs e
答案 1 :(得分:0)
我要做的是尝试获取系统的键盘布局。它将帮助您确定语言设置。