首页 > 布布扣 > 详细

winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体

时间:2014-12-02 16:51:38      阅读:1642      评论:0      收藏:0      [点我收藏+]

winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体,搜集了几个方法,列举如下:

一 、 所有权法

父窗体,名称为“fuForm”,在父窗体中有个公共刷新方法,也就是窗体数据初始化方法。如:

public void reLoad_method()
{
    //窗体数据初始化方法,fuForm_Load中的全部操作,调用此方法可实现数据的刷新
}


fuForm中打开ziForm时需要设置所有者,就是ziForm的所有者是fuForm,代码如下:

ziForm _ziForm  =new ziForm ();
_ziForm.Owner =this;
_ziForm.ShowDialog();


ziForm关闭或者需要刷新fuForm时,代码如下:

fuForm _fuForm ;
fuForm = (fuForm )this.Owner;
fuForm.reLoad_method();


二、自身传递法

在父窗体中有个公共刷新方法,如:

public void reLoad_method()
{
    //窗体数据初始化方法,fuForm_Load中的全部操作,调用此方法可实现数据的刷新
}  


父窗体打开子窗体方法代码:

ziForm _ziForm =new ziForm()   ;
_ziForm.ShowDialog(this)   ;

子窗体中:

private   fuForm _fuForm;
public   ziForm(fuForm   fromfuForm)
{
InitializeComponent();
_fuForm   =   fromfuForm;
}
//刷新时
_fuForm.reLoad_method();


三、属性法

在父窗体中有个公共刷新方法,如:

public void reLoad_method()
{
    //窗体数据初始化方法,fuForm_Load中的全部操作,调用此方法可实现数据的刷新
}  

父窗体打开子窗体方法代码

ziForm _ziForm =  new   ziForm()   ;
_ziForm.fuFormX   =  this;
_ziForm.Show()   ;

子窗体中:

private fuForm fuFormXy;
public fuForm fuFormX
{
get{return   fuFormXy;}
set{fuFormXy  =   value;}
}
//刷新时
fuFormXy.reLoad_method() ;

 

四、委托法

在父窗体中有个公共刷新方法,如:

public void reLoad_method()
{
    //窗体数据初始化方法,fuForm_Load中的全部操作,调用此方法可实现数据的刷新
} 

父窗体打开子窗体方法代码

ziForm _ziForm =new ziForm();
_ziForm.ShowUpdate +=new DisplayUpdate(reLoad_method);_ziForm.Show();

子窗体中:

//声明一个委托
public delegate void DisplayUpdate();
//声明事件
public event DisplayUpdate ShowUpdate;
//刷新时,放在需要执行刷新的事件里
ShowUpdate();

 

在以上几个方法中,个人认为第一个所有权法最好用,容易理解,而且代码简洁,推荐使用第一种方法。



winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!