C#窗体Winform,如何自重启窗体程序,自己重新启动?

如何让winform窗体程序重启?我们先看下录频效果图:

C#窗体Winform,如何自重启窗体程序,自己重新启动?_第1张图片

那么这种效果是如何实现的呢?

1.使用进程启动的方式

C#窗体Winform,如何自重启窗体程序,自己重新启动?_第2张图片

进程Process.Start(string),可以直接启动你指定路径的exe应用程序。

然后当前进程要马上杀死,调用Kill()方法即可。

2.使用应用程序重启的方式

C#窗体Winform,如何自重启窗体程序,自己重新启动?_第3张图片

使用Application.Restart()可以重启当前应用程序。

同样的,当前进程要记得马上杀死。

3.温和的重启

C#窗体Winform,如何自重启窗体程序,自己重新启动?_第4张图片

不论是使用哪种方式结束进程,都使用了Kill(),这种方式是暴力的,相当于强行结束进程。

您也可以使用相对温和的方式,使用Close(),但是在一些情况下,这种温和的方式退出很缓慢。

您可能需要使用WaitforExit(int)方法,等待进程结束后再重启。

 

当您重启程序后,如果不置顶的话,那么刚重启的应用程序,可能不是当前窗口,为了激活它,您可能需要下面的代码:

C#窗体Winform,如何自重启窗体程序,自己重新启动?_第5张图片

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();
        }
    }
}

 

祝您用餐愉快。

你可能感兴趣的:(Winform)