Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法更改输入语言_C#_.net - Fatal编程技术网

C# 无法更改输入语言

C# 无法更改输入语言,c#,.net,C#,.net,我正在制作多语言打字教程,希望从代码中更改输入语言,但语言栏上没有这些语言(它们安装在操作系统中,但我在语言栏中只显示英语)。我尝试了以下代码,但不起作用 System.Globalization.CultureInfo my_culture = new System.Globalization.CultureInfo("fr-FR"); InputLanguage c = InputLanguage.FromCulture(my_culture); InputLanguage.CurrentI

我正在制作多语言打字教程,希望从代码中更改输入语言,但语言栏上没有这些语言(它们安装在操作系统中,但我在语言栏中只显示英语)。我尝试了以下代码,但不起作用

System.Globalization.CultureInfo my_culture = new System.Globalization.CultureInfo("fr-FR");
InputLanguage c = InputLanguage.FromCulture(my_culture);
InputLanguage.CurrentInputLanguage = c;

请注意,我不希望最终用户先在语言栏中获取这些语言,然后再工作。。在这种情况下,我想用法语打字,但我不能这样做。。朋友们,请帮助我

我知道时间很晚了,但我发现这段代码对我很有用:

    var culture = System.Globalization.CultureInfo.GetCultureInfo("fa-IR");
    var lang = InputLanguage.FromCulture(culture);
    if(InputLanguage.InstalledInputLanguages.IndexOf(lang) >= 0)
    {
        InputLanguage.CurrentInputLanguage = InputLanguage.InstalledInputLanguages[InputLanguage.InstalledInputLanguages.IndexOf(lang)];
        System.Threading.Thread.CurrentThread.CurrentCulture = culture;
    }
    else
    {
        InputLanguage.CurrentInputLanguage = original;
    }

多亏了

我认为这是不可能的。你必须首先在语言栏中显示该语言。但我见过一些应用程序,例如在页面中,即使语言栏中没有显示阿拉伯语,你也可以输入阿拉伯语。。有什么办法吗?你能提供我能做的任何类型的键盘映射的信息吗?感谢回复有一些方法可以使用机器上甚至没有安装的自定义字体,例如。(未经测试)您在之前的帖子中说过“让语言出现在语言栏中”如何通过编程实现??谢谢,我不知道,可能会将其作为答案发布,但在搜索时找不到。但如果你这样做,你就可以改变输入语言。