private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
        {
       
            DialogResult da = MessageBox.Show("确定退出系统吗?", "退出系统?", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (da == DialogResult.Yes)
            {
                Application.Exit();
            }
            else  
            {
                e.Cancel = true;
            }
        }
为什么我退出系统的时候,要点击两次确定才能退出?
大家帮看一下,问题出在哪里?

解决方案 »

  1.   

    Application.Exit();也会触发FormClosing事件的private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
            {
                if (e.CloseReason != CloseReason.UserClosing) return;
                DialogResult da = MessageBox.Show("确定退出系统吗?", "退出系统?", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (da == DialogResult.Yes)
                {
                    Application.Exit();
                }
                else
                {
                    e.Cancel = true;
                }
            }
      

  2.   

    try...        private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
            {
                DialogResult da = MessageBox.Show("确定退出系统吗?", "退出系统?", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (da == DialogResult.No)
                {
                    e.Cancel = true;
                }
            }
      

  3.   

    把 
                if (da == DialogResult.Yes)
                {
                    Application.Exit();
                }
    删了就行了。else 改了。
      

  4.   

    private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
            {
           
                DialogResult da = MessageBox.Show("确定退出系统吗?", "退出系统?", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (da == DialogResult.Yes)
                {               // Application.Exit();
                    Application.ExitThread();//退出当前线程上的消息循环,并关闭所有窗口,
                }
                else  
                {
                    e.Cancel = true;
                }
            }