Application.Exit()无法正常工作

时间:2016-12-25 10:24:37

标签: c# winforms exit

我有一个单独的窗体供用户选择背景音乐,除非应用程序关闭,否则它将始终保持在那里。我阻止用户使用代码关闭音乐表单:

private void Music_FormClosing(object sender, FormClosingEventArgs e)
    {
        e.Cancel = true;
    }

在我的主程序中我运行一个名为login的页面,如下所示:

Application.Run(new Login());

我还在所有表单中有一个FormClosed事件,在按下十字架后关闭整个程序

private void Login_FormClosed(object sender, FormClosedEventArgs e)
    {
        Application.Exit();
    }

然而,在我添加了用户无法关闭音乐表单的代码之后,我的应用程序只能在登录页面中按十字键退出,这是程序运行的开始主页面(以前的应用程序可以通过按十字架退出我的所有表格)

我想知道是否有任何方法可以让我正确退出我的应用程序,或者让用户无法关闭音乐表单,而不会影响我的其他表单的结束。谢谢

1 个答案:

答案 0 :(得分:3)

Music_FormClosing内的代码阻止您的应用程序退出。要获得所需的行为(阻止用户关闭音乐表单),您可以使用FormClosingEventArgs CloseReason属性:

private void Music_FormClosing(object sender, FormClosingEventArgs e)
{
    if (e.CloseReason == CloseReason.UserClosing)
        e.Cancel = true;
}