1. 程式人生 > 實用技巧 >[轉]winform開啟子窗體後,在子窗體中重新整理父窗體,或者關閉子窗體重新整理父窗體 - weekzero

[轉]winform開啟子窗體後,在子窗體中重新整理父窗體,或者關閉子窗體重新整理父窗體 - weekzero

(轉載請刪除括號裡的內容)

winform開啟子窗體後,在子窗體中重新整理父窗體,或者關閉子窗體重新整理父窗體,蒐集了幾個方法,列舉如下:

一 、所有權法

父窗體,名稱為“fuForm”,在父窗體中有個公共重新整理方法,也就是窗體資料初始化方法。如:

1 2 3 4 public void reLoad_method() { //窗體資料初始化方法,fuForm_Load中的全部操作,呼叫此方法可實現資料的重新整理 }

fuForm中開啟ziForm時需要設定所有者,就是ziForm的所有者是fuForm,程式碼如下:

1 2 3 ziForm _ziForm =
new ziForm (); _ziForm.Owner = this; _ziForm.ShowDialog();

ziForm關閉或者需要重新整理fuForm時,程式碼如下:

1 2 3 fuForm _fuForm ; _fuForm = (fuForm )this.Owner; _fuForm.reLoad_method();

  

二、自身傳遞法

在父窗體中有個公共重新整理方法,如:

1 2 3 4 public void reLoad_method() { //窗體資料初始化方法,fuForm_Load中的全部操作,呼叫此方法可實現資料的重新整理
}

父窗體開啟子窗體方法程式碼:

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

子窗體中:

1 2 3 4 5 6 7 8 private fuForm _fuForm; public ziForm(fuForm fromfuForm) { InitializeComponent(); _fuForm = fromfuForm; } //重新整理時 _fuForm.reLoad_method();

  

三、屬性法

在父窗體中有個公共重新整理方法,如:

1 2 3 4 public void reLoad_method() { //窗體資料初始化方法,fuForm_Load中的全部操作,呼叫此方法可實現資料的重新整理 }

父窗體開啟子窗體方法程式碼

1 2 3 ziForm _ziForm = new ziForm() ; _ziForm.fuFormX = this; _ziForm.Show() ;

子窗體中:

1 2 3 4 5 6 7 8 private fuForm fuFormXy; public fuForm fuFormX { get{return fuFormXy;} set{fuFormXy = value;} } //重新整理時 fuFormXy.reLoad_method() ;

四、委託法

在父窗體中有個公共重新整理方法,如:

1 2 3 4 public void reLoad_method() { //窗體資料初始化方法,fuForm_Load中的全部操作,呼叫此方法可實現資料的重新整理 }

父窗體開啟子窗體方法程式碼

1 2 ziForm _ziForm = new ziForm(); _ziForm.ShowUpdate += new DisplayUpdate(reLoad_method);<br>_ziForm.Show();

子窗體中:

1 2 3 4 5 6 //宣告一個委託 public delegate void DisplayUpdate(); //宣告事件 public event DisplayUpdate ShowUpdate; //重新整理時,放在需要執行重新整理的事件裡 ShowUpdate();

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


---------------------
作者:weekzero
來源:CNBLOGS
原文:https://www.cnblogs.com/weekzero/p/3471317.html