在父窗口中查找子窗口是否存在,如果不存在,则显示,如果存在,则不显示,函数如下:
#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;
}