天天看点

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

子窗体:

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

父窗体:

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

posted on 2013-01-21 11:45  泰山脚下 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/godxiangyu/archive/2013/01/21/2869493.html