有一段vb.net的代码,你看看:
Public Const SC_CLOSE As Integer = 61536
Public Const WM_SYSCOMMAND As Integer = 274
Private closeBZ As Boolean = False
Protected Overloads Overrides Sub WndProc(ByRef m As Message)
    If m.Msg = WM_SYSCOMMAND AndAlso m.WParam.ToInt32 = SC_CLOSE Then
          If MsgBox("您真的要退出吗?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
               Me.Dispose(True)
                Application.Exit()
                closeBZ = True
            End If
      End If
     MyBase.WndProc(m)End Sub

解决方案 »

  1.   

    private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
    {
    if (MessageBox.Show(this,"确定要关闭吗?","信息提示",MessageBoxButtons.OKCancel, MessageBoxIcon.Question)!=DialogResult.OK)
             {
    e.Cancel=true;
              }

    }
      

  2.   

    在Form的Closing 事件中      设置e.Cancel=true; //结束关闭事件
      

  3.   

    Up.studio.net 中方法中设计..
      

  4.   

    private void frmWord_Closing(object sender, System.ComponentModel.CancelEventArgs e)
    {
    DialogResult result=new DialogResult();
    result=MessageBox.Show("真的要退出吗?","MyWord",MessageBoxButtons.OKCancel);
    if(result==DialogResult.OK)
    {
    Application.Exit();
    }
    else
    {        
    e.Cancel=true;
    }
    }
      

  5.   


      在窗体的Closing事件中添加判断,如下:private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
    {
       if(MessageBox.Show("您确定退出本系统吗?","系统提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)==DialogResult.OK) 
         {
    e.Cancel=false;
         }
         else 
         {
             e.Cancel=true;
         }
    }  freeboy0002这位仁兄你笔误了!e.Cancel=true是取消关闭事件,而不能关闭窗体。 :)
      

  6.   

    to  chNET(有神论者) 我的条件是 !=    哈哈“MessageBoxButtons.OKCancel, MessageBoxIcon.Question)!=DialogResult.OK“