首页 > 代码库 > Winform 子窗体设置刷新父窗体

Winform 子窗体设置刷新父窗体

方法1:所有权法

父窗体:Form1    子窗体:Form2

//Form1:窗体代码//需要有一个公共的刷新方法public void Refresh_Method(){      //...}//在调用Form2时,要把Form2的所有者设为Form1Form2 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 子窗体设置刷新父窗体