Правильный способ смены языка во время выполнения

Как правильно изменить язык формы во время выполнения?

  1. Установка всех элементов управления вручную с использованием рекурсии, например это
  2. Сохранить выбор языка в файл> Перезапустить приложение> Загрузить язык выбор передInitializeComponent();
  3. Использование конструктора формы для замены экземпляра active из (, если это вообще возможно)
  4. Что-то еще

Об этом так много наполовину написанных тем, но ни одна из них не дает реального ответа на вопрос, как правильно это сделать?

ОБНОВЛЕНИЕ:
Чтобы уточнить мой вопрос:

Делать что-то вроде этого:

public Form1()
{
    Thread.CurrentThread.CurrentUICulture = new CultureInfo("de");
    this.InitializeComponent();
}

работает нормально, и все мои элементы управления и все остальное в ресурсах переводится правильно. И делать что-то вроде:

private void button1_Click(object sender, EventArgs e)
{
    Thread.CurrentThread.CurrentUICulture = new CultureInfo("en");
}

ничего не делает, форма остается на языке, который я настроил ранееInitializeComponent();

22
задан Community 23 May 2017 в 12:10
поделиться