日期:2014-05-17  浏览次数:20818 次

C# 如何在关闭一个窗口时刷新另一个窗口,注意:这俩窗口不是父子窗口,都是添加上的窗口。
比如说,有Form1、Form2两个窗口,两者没有任何父子关系,就是最普通的MDI窗口,我想让Form2点击一个按钮或者关闭时(点击“Form1刷新”按钮,或者Form2关闭时两者有一个能实现就感谢大家了!)能够刷新Form1窗体,怎么实现呢?

------解决方案--------------------
Program.cs:
Form2 f2 = null;
public Run()
{
InitializeComponent();
Form1 f1 = new Form1();
//调用OnRefresh事件
f1.OnRefresh += new Form1.RefreshForm(f1_OnRefresh);
f1.Show();
f2 = new Form2();
f2.Show();
}

void f1_OnRefresh()
{
f2.RefreshMe();
}

//Form1中
//创建OnRefresh事件,并在鼠标点击或关闭页面时出发
public delegate void RefreshForm();
public event RefreshForm OnRefresh; 
private void button1_Click(object sender, EventArgs e)
{
if (OnRefresh != null)
{
OnRefresh();
}
}

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (OnRefresh != null)
{
OnRefresh();
}
}

Form2:
int count = 1;
//刷新Form2
public void RefreshMe()
{
lbContent.Text = "Refresh " + count;
count++;
}