方法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数据 }
我本人用的是第一种方法,比较好操作一些
时间: 2024-10-03 13:45:59