新建winform窗體Form1和Form2;
接下來要通過點擊Form2的按鈕,實現Form1界面的同步刷新。
先展示一下最終效果:
1.Form1界面如下:
2.點擊按鈕彈出Form2,界面如下:
3.點擊Form2按鈕彈出提示框,點擊“是”實現Form1的同步刷新:
4.Form1窗體刷新,label文本變更:
最終展示效果大致是這樣,很簡單,原理也很清晰,下面我們來看一下具體的實現代碼:
1.首先在Form2窗體中聲明一個委托事件,並在Form2點擊按鈕事件中調用委托事件。

using System; using System.Windows.Forms; namespace FormRefresh { public partial class Form2 : Form { public delegate void RefreshDelegate(); public event RefreshDelegate refresh; public Form2() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { if (MessageBox.Show("確定刷新form1嗎?","提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes) { this.Close(); this.refresh(); } } } }
2.在Form1中自定義頁面刷新事件,實例化Form2窗體時調用刷新事件。

using System; using System.Windows.Forms; namespace FormRefresh { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Form2 form2 = new Form2(); form2.refresh += RefreshForm; form2.Show(); } public void RefreshForm() { this.label1.Text = "我是刷新后的label文本"; } } }
我這邊RefreshForm方法體只實現了label的刷新,如果要刷新窗體,則如下:
public void RefreshForm()
{
this.Init(); }
demo源碼獻上:點我下載~~
/****************************我是可愛的分割線********************************/