首页 > 解决方案 > 冻结本地化已修复,但焦点需要从表格中移除并返回

问题描述

我正在尝试本地化我的应用程序。我最初是用英文写的,有(标准)或(默认)本地化(我的 Visual Studio 是德文的,所以我不确定它用英文叫什么)。

Visual Studio 的默认本地化似乎是en-US,我曾经用de德语写过整个东西。

我有两个用于更改语言的按钮,都带有单击事件。事件处理程序如下所示:

private void EnglishButton_Click(object sender, EventArgs e)
{     
     if(Thread.CurrentThread.CurrentUICulture != CultureInfo.GetCultureInfo("en-US"))
    {
        Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en-US");
        this.Controls.Clear();
        InitializeComponent();
        Application.OpenForms[0].Activate();
        this.Activate();
    }
}

因为de我做了同样的事情,只是用de而不是en-US.

这工作正常,冻结是固定的。但是,我不喜欢一件事:正如您在上面看到的,我需要从窗口中移除焦点并将焦点返回给它,否则在切换语言后我无法与窗口交互。

就我个人而言,这很好,但我担心这可能会给有视力的人带来恼人的闪烁。你怎么看?像现在这样好吗?或者,还有更好的方法?

标签: c#winformslocalization

解决方案


推荐阅读