zoukankan      html  css  js  c++  java
  • c# 兩窗體間通信

        窗體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;
                    }
                }
  • 相关阅读:
    poj 3243 Clever Y(BabyStep GiantStep)
    poj 2417 Discrete Logging
    poj 3481 Double Queue
    hdu 4046 Panda
    hdu 2896 病毒侵袭
    poj 1442 Black Box
    hdu 2815 Mod Tree
    hdu 3065 病毒侵袭持续中
    hdu 1576 A/B
    所有控件
  • 原文地址:https://www.cnblogs.com/scottckt/p/1155630.html
Copyright © 2011-2022 走看看