现在我有一个MDI窗体,在MDI主窗体上有一个按钮是用来关闭MDI子窗体的,按钮的事件中代码如下
           //检查MDI主窗体中是否有名叫FrmChildren的窗体,有,则关闭此窗体
            Form Frm = MDIApplaction.MdiChildren.Where(d => d.Name=="FrmChildren").FirstOrDefault();
            if (Frm != null)
            {
                Frm.Close();
            }
FrmChildren窗体中的FormClosing事件(窗体关闭前的事件)代码如下:
            e.Cancel = true; //取消窗体关闭句柄
我想在想在MDI主窗体的按钮事件中得到FrmChildren窗体是否已被关闭,代码该怎么写?

解决方案 »

  1.   

    本帖最后由 bdmh 于 2012-06-14 16:19:21 编辑
      

  2.   


    Form3 f2 = new Form3();
                    f2.FormClosed += (s, i) =>
                    {
                        MessageBox.Show("子窗体已关闭");
                    };
                    f2.ShowDialog();
      

  3.   

    解决了 判断FrmChildren.Visible就OK了 郁闷 也太简单了 
      

  4.   

    判断窗体是否关闭,可以判断form ==null || form.IsDisposing
      

  5.   

    如果你的子窗體不是很多,提供一個比較笨的方法,就是在主窗定義一個全域變數public bool flagfrm,代表子窗體是被開啟(在主窗體某一事件中,flagfrm=true)或關閉(在子窗體FormClosing或FormClosed事件中,((MDIForm)this.MdiParent).flagfrm=false)
    這樣你就可以很容易判斷你的子窗體是開啟還是關閉﹗