如何在不退出和重新加载的情况下重启应用程序?

时间:2012-05-30 11:00:51

标签: c# winforms restart

当我在运行附加到自身的整个方法之前单击按钮时,我希望按钮重置整个内容。因此,如果我使用Application.Restart();,它只会重新启动应用程序,但不会运行其余的。我怎样才能解决这个问题? 我想重新启动应用程序的原因是有很多变量,我想重置所有这些变量。 必须通过单击特定按钮来完成此重置过程。但是,该按钮具有大量功能,在此方法的任何位置运行Application.Restart();方法。 导致此方法不执行。 所以基本上我希望这个方法重新启动所有变量,然后运行其余的(从enableButtons();开始)

private void puzzleToolStripMenuItem_Click(object sender, EventArgs e) {
        Application.Restart();
        enableButtons();
        puzzleDataMethod();
        MessageBox.Show...

2 个答案:

答案 0 :(得分:1)

您应该将所有变量移动到一个容器中。 当应用程序需要重新启动时,您将重新初始化它。

答案 1 :(得分:0)

你真的不能这样做。您唯一的做法是将重新启动后重新启动的任何状态保留到磁盘,并确保Application.Restart()是您方法中的最后一次调用。

可能就像在隔离存储中的文件中设置true / false标志一样简单,该文件告诉应用程序的新实例它是由于重新启动而启动的,因此它可以运行您当前尝试的那些命令在致电Application.Restart()后运行。