如何在C#.NET中同时启动多个表单?

时间:2011-08-21 23:27:23

标签: c#

在C#中,我试图获得两个表单(但最终可能有三个)同时启动...我尝试在我的Program.cs文件中添加一个新的“Application.Run”,但它只在第一个表格关闭后才开始第二个表格。

那么我怎么能创造出类似的东西呢?类似于拉撒路这样的计划。

3 个答案:

答案 0 :(得分:4)

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

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

Application.Run();

此处有警告,因为没有任何表单与Application.Run调用绑定,您需要一种方法告诉应用程序在所有表单关闭时退出。

答案 1 :(得分:3)

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

  • Show() - 显示非模态对话框(就是你想要的);您还需要添加Application.Run才能工作。
  • ShowDialog() - 显示模态(某些阻塞)对话框;模态对话框捕获当前线程的所有输入。

如果您想要一个像Lazarus这样的界面,可以通过“MDI应用程序”进行谷歌浏览。

答案 2 :(得分:0)

我认为您可能应该决定将一个表单作为“主要”表单,然后让其他表单成为主表单的成员变量。然后让主表单的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);
    }
 }

可能有更好的方法可以做到这一点,但这就是我第一次拍摄时所做的事情。