用子窗体的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中的事件 实现窗体间的互交;
新闻热点
疑难解答