如何在子窗体(被调用者)中实现对其父窗体(调用者)的刷新

CON-如何在子窗体(被调用者)中实现对其父窗体(调用者)的刷新呢?  
网络上有几种方法,先总结如下:  
调用窗体(父):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:委托法  
//声明一个委托  
public delegate void DisplayUpdate();  
//Form1:  
//需要有一个公共的刷新方法  
public void Refresh_Method()  
{  
//...  
}  
//调用时  
Form2 f2 = new Form2() ;  
f2.ShowUpdate  = new DisplayUpdate(Refresh_Method) ;  
f2.Show() ;  
//Form2:  
//声明事件  
public event DisplayUpdate ShowUpdate;  
//刷新时,放在需要执行刷新的事件里  
ShowUpdate();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值