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

王朝c#·作者佚名  2006-01-10
宽屏版  字体: |||超大  

当存在大量的子窗体的时候,父窗体管理起来就比较麻烦了,能不能有比较快捷的方式 呢?近期参考了部分网友的想法,自己整理一个比较高效的方法(自我感觉良好~~~),请多多指教~~

用子窗体的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中的事件 实现窗体间的互交;

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有