程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 如何使窗體不重復被打開

如何使窗體不重復被打開

編輯:.NET實例教程
要使窗體不被重復打開,就要把已經打開的窗體保存下來進行輪尋,我們可以用ArrayList來保存已經打開的窗體實例,當new新的form時,對ArrayList中的Object進行逐個的比較,可以對form的name進行比較,也可以對form的Type進行比較(前者的效率比後者低)。雖然這個方法比較笨,但卻十分有效,具體代碼見下:
MainForm.cs
public static ArrayList FormList = new ArrayList();
private void button1_Click(object sender, System.EventArgs e)
{
     bool OnlyForm = true;
     foreach( Form f in FormList )
     {
         if( f is MyForm )
         {
              f.Activate();
              OnlyForm = false;
         }
     }
     if( OnlyForm )
     {
         MyForm temp = new MyForm ();
         temp.Owner = this;
         FormList.Add( temp );
         temp.Show();
     }
}
MyForm.cs
private void MyForm_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
     MainForm.FormList.Remove( this );
}
 
     首先在MainForm中new一個static的FormList,然後在打開窗體時在FromList中輪尋,找到與此類型相一致的就Activate(),否則就new一個新的form,並且加到FormList中,在form退出時千萬別忘記把自己從FormList中退出來,就是用Remove(this)就可以了。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved