天天看點

在winform中,MDI窗體不能打開重複窗體

在父視窗中查找子視窗是否存在,如果不存在,則顯示,如果存在,則不顯示,函數如下:  

  #region   尋找子視窗是否已經存在  

  ///   <summary>  

  ///   尋找子視窗是否已經存在  

  ///   </summary>  

  ///   <param   name="frmShow">要顯示的子視窗</param>  

  ///   <param   name="frmParent">要顯示視窗的父視窗,通常該視窗為Mdi型</param>  

  ///   <returns>傳回是否找到   false:沒有找到   true:找到了</returns>  

  #endregion  

  public   static   bool   IsFormExist(   Form   frmParent,   Form   frmShow   )  

  {  

  //如果不是MDI  

  if(   !frmParent.IsMdiContainer   )  

  {  

  return   true;  

  }  

  //如果沒有子視窗  

  if(   frmParent.MdiChildren.Length   ==   0)  

  return   false;  

  //如果是焦點  

  if(   frmParent.ActiveMdiChild.GetType().ToString()   ==   frmShow.GetType().ToString()   )  

  return   true;  

  //存在但不是焦點  

  foreach(Form   frm   in   frmParent.MdiChildren)  

  {  

  if(frm.GetType().ToString()   ==   frmShow.GetType().ToString())  

  {  

  //獲得焦點  

  frm.Focus();  

  return   true;  

  }  

  }  

  return   false;  

  } 

繼續閱讀