1. frmHome frm = new frmHome();
frm.Show();
this.Close();
我正在从
HomeForm
打开LoginForm
。在LoginForm
的form_closed
事件中,我将其称为Application.Exit()
。这使您可以打开LoginForm
并通过单击X
按钮退出应用程序。问题是当我从
LoginForm
移到HomeForm
并调用this.Close()
时,form_closed
的LoginForm
事件触发,应用程序关闭。我一次只能显示一种表格。
最佳答案
您可以在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()
。编辑:
上面的方法不起作用,因为
LoginForm
是Application.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/