专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > WinForm

Winform 子窗体设立刷新父窗体

发布时间:2011-06-23 13:54:05 文章来源:www.iduyao.cn 采编人员:星星草
Winform 子窗体设置刷新父窗体

方法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数据
}

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

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: