从frmLogin窗体进入frmMain窗体(进入frmMain后,frmLogin隐藏了),在点击frmMain窗体右上角的关闭时,我想要弹出对话框,加以确认,点击确认后,退出整个程序。我编写的代码如下:private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
{
    if ((MessageBox.Show("确认退出吗?", "退出", MessageBoxButtons.YesNo,MessageBoxIcon.Question) == DialogResult.Yes))
    {
        e.Cancel = false;
        Application.Exit();
    }
    else
        e.Cancel = true;
}当退出时候,出现两次对话框,也即点击2次"是(Y)"才能退出。不知这个问题该如何解决。
谢谢!

解决方案 »

  1.   

     if ((MessageBox.Show("确认退出吗?", "退出", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes))
                {
                    e.Cancel = false;
                    
                }
                else
                    e.Cancel = true;
      

  2.   

    这样做的结果是无法退出整个程序,只是关闭了frmMain这个窗体而已。
    不知道有没有其他什么好的方法实现退出确认,并且是退出【整个】应用程序。
      

  3.   

    试试这样private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
    {
        if ((MessageBox.Show("确认退出吗?", "退出", MessageBoxButtons.YesNo,MessageBoxIcon.Question) == DialogResult.Yes))
        {
            e.Cancel = false;    }
        else
            e.Cancel = true;
    }        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
            {
              Application.Exit();        }
      

  4.   

           if (e.CloseReason == CloseReason.UserClosing)
                {
                    if ((MessageBox.Show("确认退出吗?", "退出", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes))
                    {
                        Application.Exit();
                    }
                    else
                        e.Cancel = true;             }
      

  5.   

    要退出那个窗体的事件:
     private void ToolStripFileMenuClickHandler(object sender, EventArgs e)
            {                    AllForms.Exit();        }退出方法:
    public static void Exit()
            {
                DialogResult result = MessageBox.Show("确定退出", "提示", MessageBoxButtons.OKCancel);
                if (result == DialogResult.OK)
                    Application.Exit();
            }