调用窗体(父):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:委托法 //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();
方法5:消息法
//Form1
//需要有一个公共的刷新方法 public void Refresh_Method() { //... }
//判断对话框结果
if (Form1.ShowDialog(this) ==DialogResult.OK) { Refresh_Method() } //From2 //刷新时 this.DialogResult = System.Windows.Forms.DialogResult.OK;
|
请发表评论