日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

保证相同类型的MDI子窗体只会被打开一次的方法

發布時間:2025/7/14 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 保证相同类型的MDI子窗体只会被打开一次的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

看到論壇中有朋友問,如何可以保證在MDI主窗體中,同一類型的子窗體只能打開一次,再打開只是將原來打開的窗體激活。這個要求我以前寫程序的時候也遇到過。我實現的基本思路是:

一般每個子窗體都是繼承自Form類型,不同子窗體分別代表不同的功能,因此只需要判斷當前MDI打開的子窗體的類型中有沒有當前需要打開的子窗體類型就行了,如果有,則直接激活,如果沒有則創建一個并加到主窗體中。具體實現起來有很多種辦法,這里只寫出一個利用泛型的實現:

///?<summary>
///?打開MDI子窗口并附加到MDI主窗口中,如果MDI主窗口中已經存在相同類型的子窗口,則直接激活
///?</summary>
///?<typeparam?name="T">MDI子窗體類型</typeparam>
///?<param?name="mdiParent">MDI主窗體引用</param>
///?<returns>當前創建或得到的MDI子窗體類型實例的引用</returns>
private?T?OpenUniqueMDIChildWindow<T>(Form?mdiParent)?where?T?:?Form,?new()
{
????
foreach?(Form?subForm?in?mdiParent.MdiChildren)
????{
????????
if?(subForm.GetType().Equals(typeof(T)))
????????{
????????????subForm.Activate();
????????????
return?subForm?as?T;
????????}
????}
????T?newForm?
=?new?T();
????newForm.MdiParent?
=?mdiParent;
????newForm.Show();
????
return?newForm;
}

轉載于:https://www.cnblogs.com/Ricky81317/archive/2008/09/17/1292443.html

總結

以上是生活随笔為你收集整理的保证相同类型的MDI子窗体只会被打开一次的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。