运行时更改表单语言的正确方法是什么?
- 手动递归地设置所有控件,例如这样
- 将语言选项保存到文件中 > 重新启动应用程序 > 在
InitializeComponent();
之前加载语言选项 - 使用表单构造函数替换活动表单实例(如果可能的话)
- 其他方法
有许多关于此主题的未完成的线程,但没有提供真正的答案来说明什么是正确的做法。
更新:
为了澄清我的问题:
像这样做:
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();