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