Application.Exit() 无法正常工作

Application.Exit() not working properly

我有一个单独的 windows 表单供用户 select 背景音乐,除非应用程序关闭,否则它会一直留在那里。我使用代码阻止了用户关闭音乐表单:

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

在我的主 Program.cs 我 运行 一个名为登录的页面,如下所示:

Application.Run(new Login());

我的我的所有表单中也有一个 FormClosed 事件,它会在按下叉号后关闭整个程序

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

但是,在我添加用户无法关闭音乐表单的代码后,我的应用程序只能在登录页面按叉号退出,这是程序的开始运行 主页(应用程序过去可以通过按叉号退出我的所有表单)

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

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

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