c#用表單名字串判斷表單是否打開,如果打開就顯示,如果沒有打開就打開
uj5u.com熱心網友回復:
if (Application.OpenForms["ST_WorkStation"] == null){
ST_WorkStation obj_FM = new ST_WorkStation();
obj_FM.MdiParent = this;
obj_FM.Show();
}
else
{
Application.OpenForms["ST_WorkStation"].Activate();
}
uj5u.com熱心網友回復:
ST_WorkStation 是表單的類名uj5u.com熱心網友回復:
所有打開的表單,放到dictionary里,根據key是否存在,判斷
uj5u.com熱心網友回復:
Form test = Application.OpenForms["relock"]; //查找是否打開過鎖定視窗
if ((test == null) || (test.IsDisposed)) //如果沒有打開過
{
//……打開代碼
}
else
{
test.Activate(); //如果已經打開過就讓其獲得焦點
test.WindowState = FormWindowState.Normal;//使Form恢復正常表單大小
}
uj5u.com熱心網友回復:
做一個靜態字典,key為表單的型別名,value為表單,每次用字典判斷uj5u.com熱心網友回復:
所有打開的表單,放到dictionary里,根據key是否存在,判斷
uj5u.com熱心網友回復:
//已測驗,可以正常運行FormCollection collection = Application.OpenForms; //獲取所有打開表單
bool isOpen = false; //判斷是否打開
foreach (Form form in collection)
{
if (form.Text == "Form2") //若打開表單中有該表單,則激活
{
form.Activate();
isOpen = true;
break;
}
}
if(!isOpen) //沒有打開該表單,則打開它
{
Form2 frm2 = new Form2();
frm2.Show();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/64965.html
標籤:C#
上一篇:大神能幫我解決這個問題嗎?
下一篇:arcgis的二次開發
