如何关闭表格并重新打开?

时间:2018-06-15 21:18:41

标签: c# .net winforms application-restart

我允许用户更改一些设置(语言 - 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());

和一个打开新线程的解决方案。

这些都没有奏效,或者部分有效,但有一些问题,比如没有关闭计划,或其他一些问题。 是否有一些新的简单方法可以做到这一点?

或者我最好显示用户对话框消息"是否要重新启动程序以显示新语言?"

由于

1 个答案:

答案 0 :(得分:3)

要重新启动应用程序,您可以依赖Application.Restart()方法。它会关闭应用程序并立即启动一个新实例:

Application.Restart();