private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            e.Cancel = true;
        }
按照例子弄得,点X后Form1还是关闭了。
设置了断点,貌似没有执行到这里。

解决方案 »

  1.   

    这个FormClosing事件需要你“注册”的,不是直接Copy过来就能执行到。你打开要处理的窗体设计器,按F4打开属性窗口,切换到事件页,找到该事件双击系统会自动注册这个事件然后定位到处理该事件的方法上,此时你再编写FormClosing的代码处理。或者:
    在窗体的构造函数里找到窗体的初始化代码使用this.FormClosing+=来注册处理事件。
      

  2.   

    另一个办法可能简单点,直接打开窗体的代码,输入OnFormCloseing按Tab键系统会自动的添加对基类的该方法的重写,其实这是事件处理的首选方式。把代码添加到这个函数里就是了。
      

  3.   

    谢谢ls的,刚学C#的菜鸟,以前只会点VB.NET。
      

  4.   

    我上面最后说的有误,是如下:在代码编辑里输入 override空格onformclosing按Tab键就可以了。
      

  5.   

    把 Application.Exit();写在FormClosed事件即可!
    --------------------------------------------------------------------------
    private void frmAdminMain_FormClosed(object sender, FormClosedEventArgs e)
       {
       DialogResult dr = MessageBox.Show("确认退出?", "标题", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly);
       if (dr == DialogResult.OK)
       {
       Application.Exit();
       }
       else
       {
       frmAdminMain fa = new frmAdminMain();
       fa.Show();
       }   }