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 ();
原文地址:https://www.cnblogs.com/nianyuwen/p/2533346.html