1. 程式人生 > >Winform子窗體重新整理父窗體

Winform子窗體重新整理父窗體

呼叫窗體(父):Form1,被呼叫窗體(子):Form2
方法1:   所有權法
//Form1:
//需要有一個公共的重新整理方法
public   void   Refresh_Method()
{
//...
}
//在呼叫Form2時,要把Form2的所有者設為Form1
Form2   f2   =   new   Form2()   ;
f2.Owner   =   this;
f2.ShowDialog()   ;
//Form2:
//在需要對其呼叫者(父)重新整理時
Form1   f1   ;
f1   =   (Form1)this.Owner;
f1.Refresh_Method()   ;
方法2:自身傳遞法
//Form1:
//需要有一個公共的重新整理方法
public   void   Refresh_Method()
{
//...
}
Form2   f2   =   new   Form2()   ;
f2.ShowDialog(this)   ;
//Form2:
private   Form1   p_f1;
public   Form2(Form1   f1)
{
InitializeComponent();
p_f1   =   f1;
}
//重新整理時
p_f1.Refresh_Method()   ;
方法3:屬性法
//Form1:
//需要有一個公共的重新整理方法
public   void   Refresh_Method()
{
//...
}
//呼叫時
Form2   f2   =   new   Form2()   ;
f2.P_F1   =   this;
f2.Show()   ;

//Form2:
private   Form1   p_f1;
public   Form1   P_F1
{
get{return   p_f1;}
set{p_f1   =   value;}
}
//重新整理時
p_f1.Refresh_Method()   ;
方法4:委託法
//Form1:
//需要有一個公共的重新整理方法
public   void   Refresh_Method()
{
//...
}
//呼叫時
Form2   f2   =   new   Form2()   ;
f2.ShowUpdate   +=   new   DisplayUpdate(Refresh_Method)   ;
f2.Show()   ;
//Form2:

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