程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 保證相同類型的MDI子窗體只會被打開一次的方法

保證相同類型的MDI子窗體只會被打開一次的方法

編輯:關於.NET

看到論壇中有朋友問,如何可以保證在 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;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved