4

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

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

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

那么无论如何我该怎么做呢?

[更新]

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

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

3 回答 3

4

您可以在一个单独的项目中创建您的 Form2 并通过以下方式调用构建的 exe 文件

System.Diagnostics.Process.Start("Form2.exe");
于 2013-04-13T18:00:09.933 回答
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
于 2013-04-13T18:10:20.727 回答
0

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

new Thread(() => {
    Form2 f2 = new Form2(someInformation);
    f2.ShowDialog();
}).Start();
于 2018-09-17T05:23:54.687 回答