C# 如何从ShowDialog窗口关闭主窗口或应用程序
根据问题。所以当应用程序启动时,我有一个主窗口(MainForm)加载。然后在MainForm_load事件中,它会显示另一个表单(LoginForm.showDialog()) 我所担心的是,如果用户关闭LoginForm(右上角的x符号),它如何关闭应用程序? 在LoginForm中,只有一个标记为“登录”的按钮 Thx之前的答案:)C# 如何从ShowDialog窗口关闭主窗口或应用程序,c#,.net,winforms,C#,.net,Winforms,根据问题。所以当应用程序启动时,我有一个主窗口(MainForm)加载。然后在MainForm_load事件中,它会显示另一个表单(LoginForm.showDialog()) 我所担心的是,如果用户关闭LoginForm(右上角的x符号),它如何关闭应用程序? 在LoginForm中,只有一个标记为“登录”的按钮 Thx之前的答案:) 我已经试过了 private void frmLogin_FormClosing(object sender, FormClosingEventAr
我已经试过了
private void frmLogin_FormClosing(object sender, FormClosingEventArgs e)
{
if (e.CloseReason == CloseReason.UserClosing)
{
Application.Exit();
}
else
{
this.Dispose();
}
}
但它在Application.Exit()上是无效的操作异常
因此,我想要的是,仅当我使用[x]关闭按钮关闭此登录表单时,应用程序才会退出。在Program.cs中执行此操作,如下所示:
static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
using (var login = new LoginForm()) {
if (login.ShowDialog() != DialogResult.OK) return;
}
Application.Run(new MainForm());
}
嗯,我不应该在一开始就用frmLogin_形式结束活动 我使用frmLogin\u FormClosed
private void frmLogin_FormClosed(object sender, FormClosedEventArgs e)
{
if (e.CloseReason == CloseReason.UserClosing)
{
Application.Exit();
}
}
谢谢大家的帮助和关注:)我在MainFrm_Load()m8中调用Login.ShowDialog(),怎么样….?删除它,不再需要。它不是我想要的方式,因为我想先加载main表单。顺便说一句,我改变了一点问题。你的新代码无法工作,应用程序从未启动,因此你无法退出。我看不出先加载主窗体的意义,你的文本发言没有帮助。我找到了解决方案,感谢你的关注m8,我真的很感激:)抱歉,这有点难以解释。我会马上发布解决方案。