用子窗體的name進(jìn)行判斷,如果已經(jīng)存在則將他激活,返回true,如果不存在的話,就實(shí)例一個窗體,返回false
支持多個應(yīng)用程序域之間窗體類的傳替
'輸入?yún)?shù):
1:childfrmname---窗體名稱,
2:strnamespace---域名空間,
private bool openchildfrm(string childfrmname)
{
foreach(form childfrm in this.mdichildren)
{
//用子窗體的name進(jìn)行判斷,如果已經(jīng)存在則將他激活
if(childfrm.name == childfrmname)
{
if(childfrm.windowstate == formwindowstate.minimized)
childfrm.windowstate = formwindowstate.normal;
childfrm.activate();
return true;
}
}
//objecthandle用于在多個應(yīng)用程序域之間傳遞對象(處于已包裝狀態(tài)),createinstance:創(chuàng)建實(shí)例
string strnamespace ="windowsapplication";
objecthandle obj =activator.createinstance(null,strnamespace+"."+childfrmname);
//obj.unwrap返回被包裝的對象
form frm =(form)obj.unwrap();
frm.mdiparent = this ;
frm.show();
return true;
}
下一步可以實(shí)現(xiàn):
1:定義一個可重載的事件,用于窗體間的調(diào)用如:參數(shù)傳替等;
2:在調(diào)用本函數(shù)的時候就可以重載 1中的事件 實(shí)現(xiàn)窗體間的互交;
新聞熱點(diǎn)
疑難解答
圖片精選