我需要能够在保持现有实例的同时按下按钮来创建程序的另一个全新实例。如何通过代码在一个实例中创建另一个.NET程序实例?
this.ShowDialog(new Form1());
上述语句导致当前窗体成为新窗体的所有者,我需要第二个实例独立于现有实例。
任何人都可以帮助我吗?
我需要能够在保持现有实例的同时按下按钮来创建程序的另一个全新实例。如何通过代码在一个实例中创建另一个.NET程序实例?
this.ShowDialog(new Form1());
上述语句导致当前窗体成为新窗体的所有者,我需要第二个实例独立于现有实例。
任何人都可以帮助我吗?
要在这里阐述的Desolator的回答是一个简单的例子,你可以尝试在表单和按钮:
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();
}
}
您可以改为使用new Form1().Show();
,但是当您的当前实例存在时,另一个也会退出。因此,要完全独立,最好使用System.Diagnostics.Process.Start(string path)
,它可以启动程序,就像双击它一样。
(new Form1()).Show();
(new Form1()).Show();
为什么不ü尝试的Process.Start? – nawfal
您正在尝试创建一个** Program **或一个** Form **的新实例吗? – Adam
实际上它是相反的 - 新创建的form1成为当前表单的所有者。但是,这并不会发生,因为新实例不可见。 – alexm