如何通过代码在一个实例中创建另一个.NET程序实例?

n00*_*00b 4 .net c# .net-4.0 winforms c#-4.0

我需要能够在按钮单击的同时创建另一个全新的程序实例,同时保留现有实例.

this.ShowDialog(new Form1());
Run Code Online (Sandbox Code Playgroud)

上面的语句导致当前表单成为新表单的所有者,我需要第二个实例独立于现有实例.

谁能帮我这个?

小智 5

您可以改为使用new Form1().Show();,但是当您的当前实例存在时,另一个实例也会退出.因此,要完全独立,最好使用System.Diagnostics.Process.Start(string path)哪个启动程序,就像双击它一样.


Mar*_*all 5

在这里阐述Desolator的答案是一个简单的例子,你可以尝试一个Form和一个Button:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Process p = new Process();
        p.StartInfo.FileName = Application.ExecutablePath;
        p.Start();
    }
}
Run Code Online (Sandbox Code Playgroud)