我允许用户更改一些设置(语言 - UI文化)并以新语言显示当前表单,我需要关闭表单并重新打开它。
我正在使用Windows窗体。在Program.cs中,我首先显示Splash屏幕然后显示Login表单,之后我用
运行Main表单Application.Run(new frmMain());.
我尝试了几种解决方案,其中包括:
Controls.Clear();
InitializeComponent();
我也试过
var form = new frmMain();
form.Show();
this.Hide();
以及
this.Close();// note I tried before and after.
var form = new frmMain();
form.Show();
我也尝试过表格结束活动
Application.Run(new frmMain());
和一个打开新线程的解决方案。
这些都没有奏效,或者部分有效,但有一些问题,比如没有关闭计划,或其他一些问题。 是否有一些新的简单方法可以做到这一点?
或者我最好显示用户对话框消息"是否要重新启动程序以显示新语言?"
由于
答案 0 :(得分:3)
要重新启动应用程序,您可以依赖Application.Restart()
方法。它会关闭应用程序并立即启动一个新实例:
Application.Restart();