c# winform 防止窗體多次打開


在使用MDI子窗體時,如果僅僅是使用 from.show() 代碼,那么我們單擊幾次菜單,就會打開幾個同樣的子窗體。可以用這段代碼防止這種情況。    

首先添加一個函數,這個函數用於檢測指定的子窗體是否已經打開,如果打開則激活這個子窗體,否則返回false值     

 

private bool ShowChildrenForm(string p_ChildrenFormText) 
{     
  int i;     //依次檢測當前窗體的子窗體     
  for (i = 0; i < this.MdiChildren.Length; i++)      
  {         //判斷當前子窗體的Text屬性值是否與傳入的字符串值相同
    if (this.MdiChildren[i].Text == p_ChildrenFormText) 
      {             //如果值相同則表示此子窗體為想要調用的子窗體,激活此子窗體並返回true值   
        this.MdiChildren[i].Activate();             
        return true;         
       }     
  }     //如果沒有相同的值則表示要調用的子窗體還沒有被打開,返回false值     
  return false;
 }

 

然后在調用子窗體的方法中寫入如下代碼


if ( ! ShowChildrenForm("子窗體的Text屬性值") ) 
{       
  Form newForm = new Form();  
  newForm.MdiParent = this;        
  newForm.Show();

}     
這樣在調用子窗體時,會判斷是否已經打開此窗體的相同實例,如果是則激活打開的窗體,不是的話才會再打開一個新的實例


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM