Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从ShowDialog窗口关闭主窗口或应用程序_C#_.net_Winforms - Fatal编程技术网

C# 如何从ShowDialog窗口关闭主窗口或应用程序

C# 如何从ShowDialog窗口关闭主窗口或应用程序,c#,.net,winforms,C#,.net,Winforms,根据问题。所以当应用程序启动时,我有一个主窗口(MainForm)加载。然后在MainForm_load事件中,它会显示另一个表单(LoginForm.showDialog()) 我所担心的是,如果用户关闭LoginForm(右上角的x符号),它如何关闭应用程序? 在LoginForm中,只有一个标记为“登录”的按钮 Thx之前的答案:) 我已经试过了 private void frmLogin_FormClosing(object sender, FormClosingEventAr

根据问题。所以当应用程序启动时,我有一个主窗口(MainForm)加载。然后在MainForm_load事件中,它会显示另一个表单(LoginForm.showDialog())

我所担心的是,如果用户关闭LoginForm(右上角的x符号),它如何关闭应用程序? 在LoginForm中,只有一个标记为“登录”的按钮

Thx之前的答案:)


我已经试过了

    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,我真的很感激:)抱歉,这有点难以解释。我会马上发布解决方案。