C#刷新父窗體


調用窗體(父):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();

以下是我按照方法一實現的刷新父窗體的功能。

 

子窗體:

  ShouRu.FrmSrCategoryAdd frmAddCategory = new FrmSrCategoryAdd();
            frmAddCategory.Owner = this;
            frmAddCategory .ShowDialog ();

父窗體:

 ShouRu.FrmSrCategoryAdd frmAddCategory = new FrmSrCategoryAdd();
            frmAddCategory.Owner = this;
            frmAddCategory .ShowDialog ();


免責聲明!

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



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