首先创建一个类,存放将要同时显示的窗体

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 == )
{
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()); //调用用于显示窗体的类
}
}
}

最终效果图

C# Winform同时启动多个窗体类-LMLPHP

05-08 07:58