如何在c#中的另一个表单中打开一个新窗口表单

san*_*nzy 3 c# mdi login winforms

我用c#开发了一个Windows窗体应用程序.

它有2种形式,如登录表单和主表单.当我输入正确的登录凭据时,它应该关闭(不隐藏)登录表单并显示主表单.

我使用以下代码

MainForm main=new MainForm();
this.hide();//close login form
main.show();//display main form
Run Code Online (Sandbox Code Playgroud)

但是当我使用mdi容器中十字标记(右上角)关闭主窗体时,主窗体关闭但应用程序仍在任务管理器中运行.

如果我使用以下代码而不是以前的代码,应用程序将在主窗体显示之前关闭.

this.close()//close login form
main.show();//display main form
Run Code Online (Sandbox Code Playgroud)

我是否必须从主窗体中隐藏mdi容器,或者有任何方法可以实现此目的吗?请帮忙.

Sat*_*ish 5

试试这样:

this.Hide();
Main.ShowDialog();
this.Close();
Run Code Online (Sandbox Code Playgroud)

首先,隐藏登录表单.接下来,显示"主窗体"对话框,但阻止"ShowDialog()"的调用者继续,直到关闭对话框.最后,关闭对话框后,关闭登录表单,结束应用程序.