处理关闭按钮X时出现重复的消息

时间:2016-07-16 13:56:10

标签: c#

我将退出按钮作为菜单项,并显示确认消息 以下代码完成工作,但是当我试图处理X按钮时,我收到确认消息两次我试图在菜单项的退出按钮上注释消息,但是当我点击时仍然收到消息两次是的

    private void ExitMenuItem_Click(object sender, EventArgs e)
    {
        /*DialogResult result;

        result = MessageBox.Show("are you sure?", "exit", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
        if (result == DialogResult.Yes)
        {
            Application.Exit();
        }
        else 
        { return; }*/
    }

    private void F0101_FormClosing(object sender, FormClosingEventArgs e)
    {
        DialogResult result;

        result = MessageBox.Show(""are you sure?", "exit", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
        if (result == DialogResult.Yes)
        {
            Application.Exit();
        }
        else
        { e.Cancel = true; }
    }

1 个答案:

答案 0 :(得分:3)

Application.Exit()向您的应用程序发送消息以再次关闭,使用:

Environment.Exit(0);

Application.Exit Docs

  

通知所有消息泵必须终止,然后关闭   消息处理完毕后的所有应用程序窗口。

Environment.Exit Docs

  

终止此过程并返回操作的退出代码   系统

因此使用Environment,该过程终止。即使您在try..finally块内调用它,finally块也不会执行。

但是,如果您需要在结束事件中执行状态保存代码(在您的情况下调用相同的方法并因此显示该方法两次),则可以使用Application.Exit