Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何通过代码在一个实例中创建另一个.NET程序实例?_C#_.net_Winforms_C# 4.0_.net 4.0 - Fatal编程技术网

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

C# 如何通过代码在一个实例中创建另一个.NET程序实例?,c#,.net,winforms,c#-4.0,.net-4.0,C#,.net,Winforms,C# 4.0,.net 4.0,我需要能够创建一个按钮点击另一个全新的程序实例,同时保持现有的实例 this.ShowDialog(new Form1()); 上面的语句导致当前表单成为新表单的所有者,我需要第二个实例独立于现有实例 this.ShowDialog(new Form1()); 有人能帮我吗?你可以改用newform1().Show(),但当当前实例存在时,另一个实例也将退出。因此,为了完全独立,最好使用一个能像双击一样启动程序的按钮。要详细说明Sailator的答案,这里有一个简单的示例,您可以尝试一个表单

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

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

this.ShowDialog(new Form1());

有人能帮我吗?

你可以改用
newform1().Show(),但当当前实例存在时,另一个实例也将退出。因此,为了完全独立,最好使用一个能像双击一样启动程序的按钮。

要详细说明Sailator的答案,这里有一个简单的示例,您可以尝试一个表单和一个按钮:

(new Form1()).Show();

(new Form1()).Show();
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();
    }
}

你为什么不试试process.start呢?你是在尝试创建一个程序或表单的新实例吗?实际上是相反的——新创建的表单1成为当前表单的所有者。但是,由于新实例不可见,因此不会发生这种情况。然后根据。。。