我写了一个小游戏,游戏窗体写了FromCloseing事件是提示用户在退出的时候是否保存游戏,但是我游戏窗体GameOver的时候退出一样会调用FromCloseing事件,请问各位高手指点下,如何在不用调用FromCloseing事件的情况下关闭游戏界面回到主界面。

解决方案 »

  1.   

    private void FrmMain_FormClosing(object sender, FormClosingEventArgs e)
      {
      if (e.CloseReason == CloseReason.ApplicationExitCall)
      return;
      if (DialogResult.Yes == MessageBox.Show("您确实要关闭主程序吗?", "询问", MessageBoxButtons.YesNo, MessageBoxIcon.Question))
      {
      Application.Exit();
      }
      else
      {
      e.Cancel = true;
      }
      } 
     
      

  2.   

    http://topic.csdn.net/u/20090708/10/ade8c33e-49bb-4e1f-9aba-b30cfbd4d4aa.html
      

  3.   

    gameover中先取消注册FormClosing事件,在执行Close()即可
    下面是个例子public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                //注册FormClosing事件
                this.FormClosing += (OnFormClosing);
            }
            void OnFormClosing(object sender, FormClosingEventArgs e)
            {
                
            }
            void GameOver()
            {
                //todo,your logic            //取消注册FormClosing事件
                this.FormClosing -= OnFormClosing;
                //关闭窗口
                this.Close();
            }
        }