c# 兩窗體間通訊

來源:互聯網
上載者:User
    窗體A為顯示窗體,窗體B為設定窗體。當窗體B設定完成後,希望A窗體顯示設定的結果。那窗體B如何操作窗體A呢?

方法1:使用窗體的Owner屬性
    步驟 1)在窗體A呼叫窗體B之前,將窗體A賦予窗體B,即 fasSet.Owner = this;表示fasSet(窗體B)擁有窗體A,如下面代碼:        /// <summary>
        /// 呼叫窗體B
        /// </summary>
        void WakeUpForm()
        {
            FmAlarmSet fasSet = new FmAlarmSet();
            //將本窗體設為“設置窗體”所有
            fasSet.Owner = this;
            fasSet.ShowDialog();
        }

    步驟 2)在窗體B中實例化窗體A,這樣窗體B就可以操作窗體A了。如下代碼            //得到傳入的FmAlarm窗體值
            FmAlarm fa = (FmAlarm)this.Owner;        
            
            //循環尋找FormA中的控制項,然後變更控制項中的值
            foreach (Control con in fa.Controls)
            {
                if (con.Name == "txtAlarmContent")
                {
                    ((TextBox)con).Text = txtAlarmContent.Text;
                }
            }

方法2:將窗體A作為控制項傳入窗體B
    步驟:1)修改窗B的構造函數,加入參數,類型為窗體A        /// <summary>
        /// 窗體A變量,定義為全域變量,便於調用
        /// </summary>
        FmAlarm fa = null;

        public FmAlarmSet(FmAlarm FmA)
        {
            InitializeComponent();
            fa = FmA;
        }

    步驟:2)在窗體 A呼叫窗體方法的參數中加入自己,把自己傳給窗體B。        /// <summary>
        /// 呼叫窗體B
        /// </summary>
        void WakeUpForm()
        {
            FmAlarmSet fasSet = new FmAlarmSet(this);
            fasSet.ShowDialog();
        }

    步驟:3)在需要地方調用窗體A即可,如下代碼,改變窗體A中TextBox中的值。            //循環尋找FormA中的控制項,然後變更控制項中的值
            foreach (Control con in fa.Controls)
            {
                if (con.Name == "txtAlarmContent")
                {
                    ((TextBox)con).Text = txtAlarmContent.Text;
                }
            }

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.