1. frmHome frm = new frmHome();
   frm.Show();
   this.Close();

我正在从HomeForm打开LoginForm。在LoginFormform_closed事件中,我将其称为Application.Exit()。这使您可以打开LoginForm并通过单击X按钮退出应用程序。

问题是当我从LoginForm移到HomeForm并调用this.Close()时,form_closedLoginForm事件触发,应用程序关闭。

我一次只能显示一种表格。

最佳答案

您可以在LoginForm中使用 bool 值(全局变量)作为退出标志

初始化为:

exit = true;//in constructor

在关闭之前将其设置为false:
frmHome frm = new frmHome();
frm.Show();
exit = false;
this.Close();

并在form_closed中:
if(exit) Application.Exit();

如果用户使用'X'按钮关闭表单,则exit将具有true值,并将调用Application.Exit()

编辑:

上面的方法不起作用,因为LoginFormApplication.Run(loginForm)使用的主要形式。

2条建议:

exit标志:

代替
Application.Run(new LoginForm())

经过
LoginForm loginFrm = new LoginForm();
loginFrm.Show();
Application.Run();

不带有exit标志:

替换为您当前的代码:
frmHome frm = new frmHome();
frm.Show();
this.Close();

经过
frmHome frm = new frmHome();
this.Visible = false;
frm.ShowDialog();
this.Close();

关于c# - Winform表单关闭并打开一个新表单,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1677528/

10-09 15:46