winform打開子窗體后,在子窗體中刷新父窗體,或者關閉子窗體刷新父窗體


winform打開子窗體后,在子窗體中刷新父窗體,或者關閉子窗體刷新父窗體,搜集了幾個方法,列舉如下:

一 、 所有權法

父窗體,名稱為“fuForm”,在父窗體中有個公共刷新方法,也就是窗體數據初始化方法。如:

public void reLoad_method() 
{ 
    //窗體數據初始化方法,fuForm_Load中的全部操作,調用此方法可實現數據的刷新
} 

fuForm中打開ziForm時需要設置所有者,就是ziForm的所有者是fuForm,代碼如下:

ziForm _ziForm  = new ziForm ();
_ziForm.Owner = this;
_ziForm.ShowDialog();

ziForm關閉或者需要刷新fuForm時,代碼如下:

fuForm _fuForm ;
_fuForm = (fuForm )this.Owner;
_fuForm.reLoad_method();

  

二、自身傳遞法

在父窗體中有個公共刷新方法,如:

public void reLoad_method() 
{ 
    //窗體數據初始化方法,fuForm_Load中的全部操作,調用此方法可實現數據的刷新
}  

父窗體打開子窗體方法代碼:

ziForm _ziForm = new ziForm()   ; 
_ziForm.ShowDialog(this)   ; 

子窗體中:

private   fuForm _fuForm; 
public   ziForm(fuForm   fromfuForm) 
{ 
InitializeComponent(); 
_fuForm   =   fromfuForm; 
} 
//刷新時 
_fuForm.reLoad_method();

  

三、屬性法

在父窗體中有個公共刷新方法,如:

public void reLoad_method() 
{ 
    //窗體數據初始化方法,fuForm_Load中的全部操作,調用此方法可實現數據的刷新
}  

父窗體打開子窗體方法代碼

ziForm _ziForm =   new   ziForm()   ; 
_ziForm.fuFormX   =   this; 
_ziForm.Show()   ; 

子窗體中:

private fuForm fuFormXy; 
public fuForm fuFormX 
{ 
get{return   fuFormXy;} 
set{fuFormXy  =   value;} 
} 
//刷新時 
fuFormXy.reLoad_method() ;

 

四、委托法

在父窗體中有個公共刷新方法,如:

public void reLoad_method() 
{ 
    //窗體數據初始化方法,fuForm_Load中的全部操作,調用此方法可實現數據的刷新
}  

父窗體打開子窗體方法代碼

ziForm _ziForm = new ziForm(); 
_ziForm.ShowUpdate += new DisplayUpdate(reLoad_method);
_ziForm.Show();

子窗體中:

//聲明一個委托 
public delegate void DisplayUpdate(); 
//聲明事件 
public event DisplayUpdate ShowUpdate; 
//刷新時,放在需要執行刷新的事件里 
ShowUpdate();

 

在以上幾個方法中,個人認為第一個所有權法最好用,容易理解,而且代碼簡潔,推薦使用第一種方法。


免責聲明!

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



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