中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

c#判斷打開的窗體:MDI和非MDI

發布時間:2020-06-11 02:51:52 來源:網絡 閱讀:816 作者:huohe2009 欄目:編程語言

1,MDI類型

在打開事件中直接檢測是否已經打開此MDI窗體
// 是否已經打開了?(用循環來判斷)
foreach (Form childrenForm in this.MdiChildren)
{
//檢測是不是當前子窗體名稱
if (childrenForm.Name == "子窗體名稱")
{
//是的話就是把他顯示
childrenForm.Visible = true;
//并激活該窗體
childrenForm.Activate();
return;
}
}
//下面是打開子窗體
Form1 childrenForm = new Form1();
childrenForm.MdiParent = this;
childrenForm.Show();
childrenForm.WindowState = FormWindowState.Maximized;

-------------------------------------------------------
這樣也行:
frmPurvey frmp = new frmPurvey();//創建要打開的窗體對象
bool isOpen = true;
foreach (Form frm in this.MdiChildren)//遍歷已打開的MDI
{
if (frm.Name == frmp.Name)
{
frmp.Activate();//賦予焦點
frmp.WindowState = FormWindowState.Maximized;//設置窗體最大化
isOpen = false;
break;
}
}
if (isOpen)//如果沒有找到相同窗體則打開新窗體
{
frmp.MdiParent = this;//設置父窗體
frmp.Show();
}

 

2,非MDI

利用.net Framework 2.0新加的Application.OpenForms集合解決:
bool isOpen = false; //初始為未打開狀態
Form2 frm2= new Form2();
foreach (Form frm in Application.OpenForms) //遍歷已打開窗口
{
if (frm.name == frm2.name)
{
//如果此窗口已打開
isOpen = true;
break;
}
}

if (!isOpen) //如果窗體未打開,顯示窗體
{
frm2.Show();
}
開心了一會兒,又發現:當打開其它窗體后,再想使用這個Form2時,按按鈕無法激活它了,郁悶。
加上
else
{
frm2.Activate();
}
沒用,還是無法激活,又在網上找了好久,還是沒找到合用的。沒法了,不能偷懶了。
分析一下發現,我在 foreach 之前創建了窗體對象:Form2 frm2= new Form2(); 然后下面代碼再進行判斷。那不就成了每次Activate()時都是對一個新建的對象進行激活嗎,這樣肯定與原來已經打開的窗體無關啊,原因應該在這兒。

修改代碼為:
bool isOpen = false; //初始為未打開狀態
foreach (Form frm in Application.OpenForms) //遍歷已打開窗口
{
if (frm is Form2)
{
//如果此窗口已打開,則激活
frm.Activate();
isOpen = true;
break;
}
}
if (!isOpen) //如果窗體未打開,創建窗體對象并顯示
{
Form2 frm2= new Form2();
frm2.Show();
}

OK,成功!!!
 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

商南县| 金平| 青浦区| 静宁县| 元阳县| 礼泉县| 伊宁市| 凤翔县| 青州市| 陇南市| 莒南县| 碌曲县| 徐汇区| 芦山县| 杭锦后旗| 涟源市| 阿坝| 和林格尔县| 肃南| 奎屯市| 赤城县| 泗阳县| 平度市| 蒙山县| 广东省| 邓州市| 蒙自县| 定陶县| 大丰市| 依兰县| 基隆市| 丽江市| 宜昌市| 无极县| 宁强县| 诸城市| 洪泽县| 措勤县| 新巴尔虎左旗| 廊坊市| 横峰县|