c# winform 子窗口刷新父窗口数据

当前的联系项目中用到了这个,在此记录一下,与大家分享~

在网上看到有把窗口传过去的,虽说也有效,但为了调用个方法,把整个窗口给创建一次,总觉得有些不好,所以,我选用委托来解决。

首先建立两个窗口:MainForm 和 SubForm

SubForm 的关键代码如下:

 public partial class SubForm : Form
    {
        public SubForm()
        {
            InitializeComponent();
        }
        public delegate void updateParentData(object sender);
        public event updateParentData updateIt;

        private void button1_Click(object sender, EventArgs e)
        {
            if (this.updateIt != null)
            {
                updateIt(null);
            } 
        }

接下来是MainForm,关键代码如下:

private void button_add_Click(object sender, EventArgs e)
        {
            SubForm subform = new SubForm();
            subform.updateIt += new SubForm.updateParentData(doSomething);
            subform.ShowDialog();
        }

另外,既然是刷新父窗口数据,那么,父窗口还要有个操作数据的方法:

        void doSomething(object sender)
        {
            //做些什么
        }

完毕!

原文地址:https://www.cnblogs.com/dmhai/p/2786183.html