一次运行不同的表单

我试图同时显示2种不同的表格。 我尝试了以下代码,但它不起作用:

Form1 t1 = new Form1(); Form2 t2 = new Form2(); t2.Show(); t1.Show(); Application.Run(); 

我还尝试从program.cs运行第一个,从Form1_Load运行另一个:

 private void Form1_Load(object sender, EventArgs e) { Form2 form2 = new Form2(); form2.Show(); } 

这也不起作用。

我究竟做错了什么? 如何同时运行多个表单?

您可以创建一个新的ApplicationContext来表示多个表单:

 public class MultiFormContext : ApplicationContext { private int openForms; public MultiFormContext(params Form[] forms) { openForms = forms.Length; foreach (var form in forms) { form.FormClosed += (s, args) => { //When we have closed the last of the "starting" forms, //end the program. if (Interlocked.Decrement(ref openForms) == 0) ExitThread(); }; form.Show(); } } } 

使用它你现在可以写:

 Application.Run(new MultiFormContext(new Form1(), new Form2())); 

希望你的Program.cs看起来像:

  static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } 

并在Form1尝试这个:

  private void Form1_Load(object sender, EventArgs e) { Form2 form2 = new Form2(); form2.Show(); } 

如果在Visual Studio中为C#创建一个新的Windows窗体应用程序,它将使您使用单个窗体,然后您可以在主窗体中添加更多窗体。 作为奖励,您将获得主要表单的设计师,您可以在其中拖放控件。