网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

保证相同类型的 MDI子窗体只会被打开一次的方法

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/12/13

  看到论坛中有朋友问,如何可以保证在 MDI主窗体中,同一类型的子窗体只能打开一次,再打开只是将原来打开的窗体激活。这个要求我以前写程序的时候也遇到过。我实现的基本思路是:

  一般每个子窗体都是继承自 Form类型,不同子窗体分别代表不同的功能,因此只需要判断当前 MDI打开的子窗体的类型中有没有当前需要打开的子窗体类型就行了,如果有,则直接激活,如果没有则创建一个并加到主窗体中。具体实现起来有很多种办法,这里只写出一个利用泛型的实现:

/// <summary> 
/// 打开MDI子窗口并附加到MDI主窗口中,如果MDI主窗口中已经存在相同类型的子窗口,则直接激活 
/// </summary> 
/// <typeparam name="T">MDI子窗体类型</typeparam> 
/// <param name="mdiParent">MDI主窗体引用</param> 
/// <returns>当前创建或得到的MDI子窗体类型实例的引用</returns> 
private T OpenUniqueMDIChildWindow<T>(Form mdiParent) where T : Form, new() 
{ 
  foreach (Form subForm in mdiParent.MdiChildren) 
  { 
    if (subForm.GetType().Equals(typeof(T))) 
    { 
      subForm.Activate(); 
      return subForm as T; 
    } 
  } 
  T newForm = new T(); 
  newForm.MdiParent = mdiParent; 
  newForm.Show(); 
  return newForm; 
}

(责任编辑:admin)

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号