码迷,mamicode.com
首页 > Windows程序 > 详细

Winform 子窗体设置刷新父窗体

时间:2015-01-07 10:54:17      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:

方法1:所有权法

父窗体:Form1    子窗体:Form2

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

方法二:自身传递法

//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() ;
方法三:属性法
//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() ;
方法四:委托法
//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();

//子窗体提交后
private void btnOK_Click(object sender, EventArgs e)
{
             this.DialogResult = DialogResult.OK;
             this.Close();
}


//判断子窗体
if(form.ShowDialog() == DialogResult.OK)
{
     刷新父窗体中的DataGRIDVIEW数据
}

我本人用的是第一种方法,比较好操作一些

Winform 子窗体设置刷新父窗体

标签:

原文地址:http://www.cnblogs.com/pingming/p/4207736.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!