MSDN中叙述如下:
在引发 MDI 父窗体的 Closed 事件之前,将引发所有 MDI 子窗体的 Closed 事件。
但是我在调用父窗体的Close方法后,引发了父窗体的Closed事件,但子窗体的Closed事件没有引发,请问为什么?

解决方案 »

  1.   

    是不是后边的句柄(Handles Me.FormClosed)丢失了??顺序是子窗体的FormClosed,然后才是MDI的——我这里试验正确的。
      

  2.   

    呵呵,我这是VB的写法,不知道C#怎么写,但是原理是一样的。肯定不会出现你说的问题;
      

  3.   

    仔细调试了一下,终于发现原因了:MDI子窗体的Visible为false的时候就不会引发其Closed事件,我在执行MDI父窗体的Close方法前将子窗体的Visible设为true,它的Closed事件就引发了
      

  4.   

    很难理解为什么.NET会这样,后来我又试了即便是调用Close方法如果窗体是不可见的话也不会引发Closed事件
      

  5.   

    C#中,你关闭主窗体时,设Visible为false,没有触发close事件,那它的状态还是打开的,所以子窗体也不会关闭
      

  6.   

    this.Close();
    Applicetion.Exit();