C# 数据从子窗体传回父窗体并刷新的方法


对于桌面应用程序的开发,窗体间的数据传输可谓家常便饭,对于初级的开发者来说,这可能还得花点时间来琢磨一下,下面是一段我使用的方法,采用了委托+事件的方法,仅供参考(高手请绕行):

  窗体数据的传输,无非是主窗体向子窗体传,或者是子窗体向主窗体传这两种情形。

  对于从主窗体向子窗体传数据,这个就好说了,可以通过修改构造函数的方法来实现,这里我就不再赘述,如果需要,可参考我前面的文章。

  下面重点说下,从子窗体如何回传数据给主窗体并刷新窗体的方法:

  对于子窗体来说:

  1.首先,定义一个针对该任务的委托;

  2.然后,定义上述委托类型的事件;

  3.触发事件的方法(其中包括检查该事件是否被注册)。

        public delegate void TcpStatedelegate(string txt);//定义一个委托
        public event mydelegate myevent;//定义一个上述委托的事件

   //触发事件的方法

        private void button1_Click(object sender, EventArgs e)
        {
            if (myevent != null)//检查事件是否注册
            {
                myevent(txt_IP.Text);
            }
        }

 

  对于主窗体来说:

  1.首先,创建方法,实现数据传递后的操作;

  2.然后,创建启动子窗体的方法,并在其中对事件进行注册;

          private void 通信设置ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            frmTCPconfig tcpConfig = new frmTCPconfig();
            tcpConfig.myevent += new frmTCPconfig.TcpStatedelegate(tcpConfig_myevent);//注册事件
            tcpConfig.ShowDialog();
        }
        public void tcpConfig_myevent(string str)
        {
            this.lab_TCPstate.Text = str;
        }

 

实现效果如下:

未连接之前

打开子窗体

点击子窗体,主窗体变化,如下


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM