检查 MDI 子窗口是否已在 MDI 父窗口中激活
一个简单的布尔函数,用于检查 MDI 子窗口是否已加载到 MDI 父容器中。
引言
这是一个易于实现的函数,用于确定 MDI 子窗口是否已加载到 MDI 父窗口中。然后可以使用 Switch、Select Case 或 If 语句来选择要执行的操作。
背景
我需要一个解决方案来检测 MDI 子窗体是否已加载到其父容器中。在网上搜索后,我什么也没找到。
函数代码
将以下代码放置在您的 MDI 父窗体的类中。
/* the String WndCls is the windows full path. Namespace.Classname */
internal bool CheckMdiClientDuplicates(string WndCls)
{
Form[] mdichld= this.MdiChildren;
if (this.MdiChildren.Length == 0)
{
return true;
}
foreach (Form selfm in mdichld)
{
string str=selfm.Name;
str = str.IndexOf(WndCls).ToString();
if (str != "-1")
{
return true;
}
}
return false;
}
实现
以下代码检查“关于”MDI 子窗体是否已创建。如果尚未创建,则创建它。
此应用程序的命名空间是 BTs
,关于窗体的类名为 AboutWnd
。
if (CheckMdiClientDuplicates("BTs.AboutWnd") == true){
AboutWnd AboutWindow = new AboutWnd(this);
AboutWindow.Show();
}
摘要
再次说明,我没有在网上快速搜索到任何相关内容。我尝试过 MSDN、Google 和其他几个网站。当时时间紧迫,必须完成这项工作,我没有时间继续寻找。但是,这个函数似乎运行良好且速度很快。