如何让winform窗体程序重启?我们先看下录频效果图:
那么这种效果是如何实现的呢?
1.使用进程启动的方式
进程Process.Start(string),可以直接启动你指定路径的exe应用程序。
然后当前进程要马上杀死,调用Kill()方法即可。
2.使用应用程序重启的方式
使用Application.Restart()可以重启当前应用程序。
同样的,当前进程要记得马上杀死。
3.温和的重启
不论是使用哪种方式结束进程,都使用了Kill(),这种方式是暴力的,相当于强行结束进程。
您也可以使用相对温和的方式,使用Close(),但是在一些情况下,这种温和的方式退出很缓慢。
您可能需要使用WaitforExit(int)方法,等待进程结束后再重启。
当您重启程序后,如果不置顶的话,那么刚重启的应用程序,可能不是当前窗口,为了激活它,您可能需要下面的代码:
TopMost有助于让你重启后的新应用程序马上处于最顶层。
完整源码如下:
using System;
using System.Diagnostics;
using System.Windows.Forms;
namespace Practice.Client
{
///
/// 主窗体
///
/// marc
public partial class MainForm : Form
{
///
/// 构造函数
///
public MainForm()
{
InitializeComponent();
//将窗体置为最顶层窗体。这样重启后,能马上看见。
this.TopMost = true;
}
///
/// 重启按钮单击事件
///
///
///
private void RestartButton_Click(object sender, EventArgs e)
{
Process process = Process.GetCurrentProcess();
process.Close();
Application.Restart();
}
}
}
祝您用餐愉快。



