如何在新进程中启动form2?

时间:2013-04-13 17:58:15

标签: c# .net winforms process exe

我有一个包含两个表单的项目,我需要在一个新进程中启动form2,我该怎么做? 我知道有

Form2 f2 = new Form2();
f2.Show();
this.Hide();

但在这种情况下对我不利。 我需要从一个新进程开始(作为另一个.exe文件)。

所以我怎么能这样做?

[UPDATE]

我忘了告诉你我需要将一些信息传递给form2,比如

Form2 f2 = new Form2(someInformation);
f2.Show();
this.Hide();

3 个答案:

答案 0 :(得分:4)

您可以在单独的项目中创建Form2,并通过

调用构建的exe文件
System.Diagnostics.Process.Start("Form2.exe");

答案 1 :(得分:1)

如果您的意思是新线程,请执行以下操作:

 var secondFormThread = new Thread(() => Application.Run(new Form(someInformation)));

 this.Hide();                       // Hide the current form

 secondFormThread .Start();         // now show the other one in a new thread
 secondFormThread .WaitForExit();   // wait for this thread to finish or
                                    // maybenot, may add a timeout. Whatever 
                                    // suits your needs.

 this.Show();                       // Show the first form again

答案 2 :(得分:0)

创建Form的实例并将其显示在单独的线程中。

new Thread(() => {
    Form2 f2 = new Form2(someInformation);
    f2.ShowDialog();
}).Start();