在父窗口中查找子窗口是否存在,如果不存在,则显示,如果存在,则不显示,函数如下:
#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;
}
在winform中,MDI窗体不能打开重复窗体
最新推荐文章于 2025-09-30 16:41:57 发布
本文介绍了一个用于检查子窗口是否存在于父窗口内的实用函数。该函数能够判断子窗口是否存在,并将其置于前台,若不存在则返回相应状态。适用于MDI类型的父窗口。

2659

被折叠的 条评论
为什么被折叠?



