65.9K
CodeProject 正在变化。 阅读更多。
Home

检查 MDI 子窗口是否已在 MDI 父窗口中激活

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.64/5 (12投票s)

2004年7月21日

公共领域
viewsIcon

98786

downloadIcon

2

一个简单的布尔函数,用于检查 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 和其他几个网站。当时时间紧迫,必须完成这项工作,我没有时间继续寻找。但是,这个函数似乎运行良好且速度很快。

© . All rights reserved.