日期:2014-05-18  浏览次数:21036 次

窗体中调用另一个窗体的close方法之后,如何得知另一个窗体是否已被删除?
现在我有一个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窗体是否已被关闭,代码该怎么写?

------解决方案--------------------
e.Cancel = true,这样就关不了窗体了,你怎么判断
或者你在Form中发布一个属性,代表你的动作,你就判断这个标识
------解决方案--------------------
判断FrmChildren的Handle是否为0
------解决方案--------------------
C# code

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