C# Winforms阿拉伯语输入文本框

C# Winforms阿拉伯语输入文本框,c#,.net,C#,.net,在我的windows应用程序表单(c#)上,我有阿拉伯语和英语文本框。对于阿拉伯语文本框,我希望在不按alt+shift键的情况下自动将语言转换为阿拉伯语。我在internet上找到了这个解决方案,并在TextBox Enter上实现了它 private void TextArabs_Enter(object sender, EventArgs e) { System.Globalization.CultureInfo Typ

在我的windows应用程序表单(c#)上,我有阿拉伯语和英语文本框。对于阿拉伯语文本框,我希望在不按alt+shift键的情况下自动将语言转换为阿拉伯语。我在internet上找到了这个解决方案,并在TextBox Enter上实现了它

 private void TextArabs_Enter(object sender, EventArgs e)
        {              
            System.Globalization.CultureInfo TypeOfLanguage = new System.Globalization.CultureInfo("ar");
            InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(TypeOfLanguage);   

        }
但当我在文本框中输入时,它输入的是英语字母而不是阿拉伯语。我该怎么办

您可以这样使用:

private void TextArabs_Enter(object sender, EventArgs e)
        {              
            InputLanguage.CurrentInputLanguage =
                InputLanguage.InstalledInputLanguages[1];   

        }
0:系统上安装的语言1
1:系统上安装的语言2

更新:

 InputLanguage arabic;
        InputLanguage english;
        private void Form1_Load(object sender, EventArgs e)
        {
            arabic = InputLanguage.CurrentInputLanguage;
            english = InputLanguage.CurrentInputLanguage;
            int count = InputLanguage.InstalledInputLanguages.Count;
            for (int i = 0; i <= count - 1; i++)
            {
                if (InputLanguage.InstalledInputLanguages[i].LayoutName.Contains("Arabic"))
                {
                    arabic = InputLanguage.InstalledInputLanguages[i];
                }
                if (InputLanguage.InstalledInputLanguages[i].LayoutName.Contains("English"))
                {
                    english = InputLanguage.InstalledInputLanguages[i];
                }
            }
        }
        private void txtArabic_Enter(object sender, EventArgs e)
        {
            InputLanguage.CurrentInputLanguage = arabic;
        }

        private void txtEnglish_Enter(object sender, EventArgs e)
        {
            InputLanguage.CurrentInputLanguage = english;
        }
输入阿拉伯语;
英语输入;
私有void Form1\u加载(对象发送方、事件参数e)
{
阿拉伯语=InputLanguage.CurrentInputLanguage;
英语=InputLanguage.CurrentInputLanguage;
int count=InputLanguage.InstalledInputLanguages.count;

对于(int i=0;我尝试
System.Threading.Thread.CurrentThread.CurrentCulture=TypeOfLanguage;
我想。如果我尝试了System.Threading.Thread.CurrentThread.CurrentCulture,但仍然没有成功,那么正确的方法是什么?或者我们如何知道0是阿拉伯语还是英语?@Tanveer此链接对@Tanveer很有帮助,我已更新了我的答案。