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 ();

你可能感兴趣的:(C#)