一次运行不同的表单
我试图同时显示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窗体应用程序,它将使您使用单个窗体,然后您可以在主窗体中添加更多窗体。 作为奖励,您将获得主要表单的设计师,您可以在其中拖放控件。