高效的管理子窗体(c#)

当存在大量的子窗体的时候,父窗体管理起来就比较麻烦了,能不能有比较快捷的方式 呢?近期参考了部分网友的想法,自己整理一个比较高效的方法(自我感觉良好~~~),请多多指教~~
 用子窗体的Name进行判断,如果已经存在则将他激活,返回true,如果不存在的话,就实例一个窗体,返回false
    支持多个应用程序域之间窗体类的传替
    '输入参数:
    1:childFrmName---窗体名称,
    2:strNameSpace---域名空间,

 private bool OpenChildFrm(string childFrmName)
  {
   foreach(Form childFrm in this.MdiChildren)
   {
    //用子窗体的Name进行判断,如果已经存在则将他激活
    if(childFrm.Name == childFrmName)
    {
     if(childFrm.WindowState == FormWindowState.Minimized)
     childFrm.WindowState = FormWindowState.Normal;
     childFrm.Activate();
     return true;
    }
   }
      //ObjectHandle用于在多个应用程序域之间传递对象(处于已包装状态),CreateInstance:创建实例
     string strNameSpace ="WindowsApplication";
     ObjectHandle obj =Activator.CreateInstance(null,strNameSpace+"."+childFrmName);
     //obj.Unwrap返回被包装的对象
     Form frm =(Form)obj.Unwrap();
     frm.MdiParent = this ;
     frm.Show();
        return true; 
  }

    下一步可以实现:
    1:定义一个可重载的事件,用于窗体间的调用如:参数传替等;
    2:在调用本函数的时候就可以重载 1中的事件 实现窗体间的互交;

时间: 2024-12-30 09:00:03

高效的管理子窗体(c#)的相关文章

在MDI窗体中,如何把最小化的子窗体放在主窗体的状态栏上

问题描述 在MDI窗体中,如何把最小化的子窗体放在主窗体的状态栏上 解决方案 解决方案二:下面的代码只是实现你上面说的要求.如果要求点击状态栏上的按钮,再把窗体show出来,还需要在下面代码的基础上再扩展.主要的思路就是,在父窗体能处理子窗体的最小化事件.//先建一个FormBase的基类,子窗体都从这个基类继承publicclassFormBase:System.Windows.Forms.Form{publicdelegatevoidFormMinSize(objectsender,Even

利用Visual C#实现任务栏通知窗口

visual 想必大部分网友都使用过QQ.MSN等聊天程序,它们的界面都相当华丽,尤其是当网友上线以及消息提示时会有一个浮动的窗体从屏幕的右下方缓慢升起,既美观又人性化,作为程序员在享受的同时我们也不禁要问:这到底是怎么实现的呢?本文就利用Visual Studio .Net C# 2005以及.Net框架绘图技术来实现这种任务栏通知窗口. 简介 QQ和MSN的任务栏通知窗口很人性化,它可以在不丢失主窗体焦点的前提下显示一个具备皮肤Skin的通知窗体,当它显示一段时间后会自动消失,所以用户根本不

winform-请教:如何高效实现主窗体缩小至80%后,里面的所有组件及内容全部缩小至80%,相对位置完全一致。

问题描述 请教:如何高效实现主窗体缩小至80%后,里面的所有组件及内容全部缩小至80%,相对位置完全一致. 请教:如何高效实现主窗体缩小至80%后,里面的所有组件及内容全部缩小至80%,相对位置完全一致. 解决方案 使用tablelayoutpanel控件,设置dock=fill,把其它控件放在这个控件的单元格中,并且也设置dock=fill

学习ASP.NET之初识Web窗体

asp.net|web 在ASP.NET中,发送到客户端浏览器中的网页是经过.NET框架中的基类动态生成的.这个基类就是Web页面框架中的Page类,而一个实例化的Page类就是一个Web窗体,也就是Web Forms.也因此说,一个ASP.NET页面,就是一个Web窗体.而作为窗体对象,就具有了属性.方法和事件,可以作为容器容纳其他控件.这个设计是继承了Visual Basic的优点:快速高效的搭建应用程序.因此,从此Web程序员可以像编写桌面应用程序一样的方便快捷地编写Web应用程序了,而无

使用自定义验证组件库扩展 Windows 窗体

window 摘要:数据验证是确保正常的数据捕获以及后续处理和报告的关键步骤.本文介绍了 Windows 窗体固有的程序验证基础结构,并以此为基础开发了用于提供更高效验证功能的自定义验证组件库,该验证功能与使用 ASP.NET 的验证控件相似. 下载 winforms03162004_sample.msi 示例文件. 本页内容 引言 Windows 窗体验证的主要功能 程序验证与声明性验证 建立设计时支持 模仿是最真诚的恭维 必需字段验证程序简介 BaseValidator:分治法 一个放便士,

word模拟化输入,高效制作选择题

利用word的模拟化来制作选择题的正文,可谓是高效又标准!word 2003制作示例: 1.单击"视图----工具栏----窗体"让窗体工具栏显示出来. 2.单击"插入域"----选择AutoNum域----确定,可以看到第一个域已显示为数字1,接着输入英文句号".",再点击窗体工具栏里的"文字型窗体域",最后在它后面输入带空格的小括号,题干已经OK了. 3.回车隔行输入"A.",点击"文字型窗体

有感 Visual Studio 2015 RTM 简介 - 八年后回归 Dot Net,终于迎来了 Mvc 时代,盼走了 Web 窗体时代

有感 Visual Studio 2015 RTM 简介 - 八年后回归 Dot Net,终于迎来了 Mvc 时代,盼走了 Web 窗体时代 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 关于

[小结][N种方法]实现WPF不规则窗体

原文:[小结][N种方法]实现WPF不规则窗体 WPF实现不规则窗体,方法很多很多多.... 本文总结DebugLZQ认为简洁高效的几种方法 实现WPF不规则窗体的几种常用的方法如下: 1.使用Blend等工具绘制一想要的窗体.这个可以参考xiaowei0705的这篇博文:WPF制作不规则的窗体 . 2.给window的Clip属性赋Path值.这个可以参考DebugLZQ前面的博文:WPF Effect Clip以及Transform . 3.使用透明背景的PNG图像. 4.为Window主容

掌握这些高效技巧,让你完全脱离鼠标的终端!

作者介绍 卢钧轶,DBAplus社群原创专家,目前就职于Facebook MySQL Infra Team,主要负责大规模MySQL数据库运维.在Failover.备份.监控.优化.数据库私有云等相关领域有一定经验和个人理解,曾先后就职于BesTV和大众点评网.个人博客:http://cenalulu.github.io/    前言   无论是程序员还是运维,终端(Terminal)都是Linux平台工作者不可避免的工作环境.如何利用一些神奇的技巧来提高终端的操作效率,无疑会帮助我们省下更多的