保证相同类型的MDI子窗体只会被打开一次的方法
生活随笔
收集整理的這篇文章主要介紹了
保证相同类型的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子窗体只会被打开一次的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 卷首寄语:我们的今天,明天--致所有战斗
- 下一篇: 编写和布置一个List Event Re