如何自动更改文本框的语言 [英] How to change the language of a TextBox automatically

查看:29
本文介绍了如何自动更改文本框的语言的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在 c# 中有一个 Winforms 应用程序,我希望 TextBox 在获得焦点时自动更改语言.

I have a Winforms application in c# and I want a TextBox to change language automatically when it gets focused.

我试过这个代码:

private void textBox1_Enter(object sender, EventArgs e)
{
    SetKeyboardLayout(GetInputLanguageByName("fa"));
}
private void textBox1_Leave(object sender, EventArgs e)
{
    SetKeyboardLayout(GetInputLanguageByName("eng"));
}
public static InputLanguage GetInputLanguageByName(string inputName)
{
    foreach (InputLanguage lang in InputLanguage.InstalledInputLanguages)
    {
        if (lang.Culture.EnglishName.ToLower().StartsWith(inputName))
        {
            return lang;
        }
    }
    return null;
}
private void SetKeyboardLayout(InputLanguage layout)
{
    InputLanguage.CurrentInputLanguage = layout;
}

但是当我输入文本框时,语言并没有改变.我能做什么?

But when I enter the textBox, the language does not change. What can I do?

推荐答案

检查事项:

  1. fa"是一种已安装的语言吗?
  2. 您是否已将 textBox1_Enter 和 textBox1_Leave 附加到 textBox1 调度的事件中?
  3. 您是否已通过调试器运行它并检查是否调用了 GetInputLanguageByName 以及在获得和失去焦点时调用了正确的语言?

这篇关于如何自动更改文本框的语言的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆