在主窗体中可以取消子窗体的e.Cancel=true;吗?还是用什么其他的方法?

解决方案 »

  1.   

    不行的,在子窗体没有e.Cancel=true;之前我用的就是Application.Exit();
    现在退不出...子窗体的FormClosing事件会在这个时候执行,然后e.Cancel=true;会中断Application.Exit();
      

  2.   


    把子窗口的FormClosing换乘Closing事件,注意该事件不在设计器中,用代码在Load中添加即可。
      

  3.   

    窗体的Closing事件,不响应Application.Exit();,但是其他功能和FormClosing一致
      

  4.   

    使用Formclosing的话呢?应该怎么处理呢?
      

  5.   

    在e.Cancel=true之前判断一下是不是主窗体就行了
      

  6.   

    closing事件一定是有条件的将e.Cancel设为true,否则就没意义了
    可以判断CloseReason是否为MdiFormClosing,除此之外没什么好方法
      

  7.   

    if(e.CloseReason!=CloseReason.MdiFormClosing)e.Cancel = true
    这样
      

  8.   

    奇怪,按照你这样做了,但是主窗体Application.Exit();时没有成功退出...        private void hr_FormClosing(object sender, FormClosingEventArgs e)
            {
                this.Visible=false;
                if (e.CloseReason != CloseReason.MdiFormClosing)
                {
                    e.Cancel = true;
                }
     
      

  9.   

    设定一个标志位  当主窗体关闭时 标志位为truecloseing 事件里 判断 if(!标志位)
    {
    e.Cancel = true;
    }这种事情动动脑子就好了  尽量不要用 Application.Exit ()
      

  10.   


    晕,你看下CloseReason的枚举啊
    None  关闭原因未定义或者未能确定。
    WindowsShutDown  操作系统正在关闭所有应用程序以便准备关机。
    MdiFormClosing  此多文档界面 (MDI) 窗体的父窗体正在关闭。
    UserClosing  用户正在通过用户界面 (UI) 关闭该窗体,例如通过单击窗体窗口上的“关闭”按钮,通过选择窗口控制菜单上的“关闭”按钮,或者通过按 Alt+F4 等方式关闭。
    TaskManagerClosing  Microsoft Windows 任务管理器正在关闭应用程序。
    FormOwnerClosing  所有者窗体正在关闭。
    ApplicationExitCall  Application 类的 Exit 方法被调用。举一反三知道吧