在父視窗中查找子視窗是否存在,如果不存在,則顯示,如果存在,則不顯示,函數如下:
#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;
}