首先创建一个类,存放将要同时显示的窗体
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApplication1 { class MultiFormApplictionStart : ApplicationContext { /// <summary> /// 多窗口同时启动类 /// <remarks>继承ApplicationContext的原因是Application.Run(ApplicationContext context);参数的需要</remarks> /// <remarks>另一个是关闭同时启动的窗口</remarks> /// </summary> private void onFormClosed(object sender, EventArgs e) { if (Application.OpenForms.Count == 0) { ExitThread(); } } public MultiFormApplictionStart() { //将要显示的窗体集合 var formList = new List<Form>(){ new Form1(), new Form2() }; foreach (var item in formList) { item.FormClosed += onFormClosed; } foreach (var item in formList) { item.Show(); } } } }
主程序Program更改为
using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; namespace WindowsFormsApplication1 { static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MultiFormApplictionStart()); //调用用于显示窗体的类 } } }
最终效果图