如何在c# . net中同时启动多个表单?

本文关键字:启动 表单 net | 更新日期: 2023-09-27 18:06:12

在c#中,我试图同时开始两种形式(但最终可能是三种)…我试过添加一个新的"应用程序"。运行"到我的Program.cs文件,但它只在第一个窗体关闭后启动第二个窗体。

我要怎么创建这样的东西呢?类似于Lazarus的程序

如何在c# . net中同时启动多个表单?

您只需在调用Application.Run()之前显示您的表单。

var form1 = new Form1();
var form2 = new Form2();
form1.Show();
form2.Show();
Application.Run();

这里有一个警告,因为没有表单绑定到Application.Run调用,所以您需要一种方法来告诉应用程序在关闭所有表单时退出。

要显示表单,您有两个方法:

  • Show() -显示一个非模态对话框(是你想要的);您还需要添加应用程序。
  • ShowDialog() -显示一个模态(一些阻塞)对话框;一个模态对话框捕获当前线程的所有输入。

如果你想要一个像拉撒路一样的界面,谷歌的"MDI应用程序"

我认为你可能应该决定一个形式作为你的"主要"形式,然后有其他形式(s)的成员变量的主要形式。然后让主表单的Load事件也显示次表单。

class MainForm : Form {
    readonly Form _otherForm = new OtherForm();
    override OnLoad(EventArgs args) {
        _otherForm.Closed += // add a handler for what happens when otherForm is closed.
        _otherForm.Show();
        base.OnLoad(args);
    }
 }

也许有更好的方法,但这就是我想做的第一个镜头