[轉]winform開啟子窗體後,在子窗體中重新整理父窗體,或者關閉子窗體重新整理父窗體 - weekzero
阿新 • • 發佈:2020-10-04
(轉載請刪除括號裡的內容)
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