Исправлено зависание при локализации, но фокус должен быть удален и возвращен в форму - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь локализовать свое приложение.Первоначально я написал его на английском языке с (стандартной) или (по умолчанию) локализацией (моя 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.

Работает нормально, заморозка исправлена.Однако есть одна вещь, которая мне не нравится: как вы можете видеть выше, мне нужно убрать фокус с окна и вернуть ему фокус, иначе я не могу взаимодействовать с окном после переключения языка.

Лично для меня это нормально, но я боюсь, что это может вызвать раздражающее мерцание для зрячих людей.Как вы думаете?Это нормально, как сейчас?Или есть лучший способ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...