zoukankan      html  css  js  c++  java
  • 事件与委托更新父窗体数据,简单比较

    1.委托更新父窗页面。

         例如,功能:父窗体A,子窗体B,由A打开B窗体,更新A窗体数据

          A窗体代码:

            public delegate void reflshPassenger();//声明委托

          
            private void btnAddPassenger_Click(object sender, EventArgs e)//打开B窗体按钮,并把委托窗体给B窗体
            {
                reflshPassenger reflshData = getPassengers;
                new FZ_Passengers("add", reflshData).ShowDialog();
            }

              private void getPassengers()

            {

                  //...dosomething

             }

         B窗体代码:

          A.reflshPassenger reflshpassenger; //声明A窗体委托

          public FZ_Passengers(string _strState, formSubmitOrder.reflshPassenger _reflsh)
            {
                InitializeComponent();
                strState = _strState;
                reflshpassenger = _reflsh;//接受主窗体传递过来的委托
            }

           //最后在需要调用的位置,调用即可:

           if(reflshpassenger!=null)

           {

            reflshpassenger()

           }

    2.基于事件:

      窗体A代码:

      B b;

      注册事件:

            B= new Frm_B();
              
                B.eventLookUp += new EventHandler(frm_ValueChanged);//注册事件,要在ShowDialog之前实现
                B.ShowDialog();

      实现事件:

                 if (B.strName != "")
                {
                    this.lb_Sub.Text = frm.strName.Trim();
                }
                else
                {
                    return;
                }

    B窗体代码:

     事件声明:

                       public event EventHandler eventLookUp;
                       public string strName { get; set; }//声明字符串

                       //在具体的位置实现事件

                         if (eventLookUp != null)
                    {
                        strName = dgv_DataSource.Rows[e.RowIndex].Cells["userName"].Value.ToString().Trim();
                        this.eventLookUp(sender, e);
                        this.Close();
                    }

            总结,基于事件的实现方法,更简单,效率也高点,后期的维护性也高些!~

  • 相关阅读:
    js类中的static、public、private、protected
    BOM—Browser Object Model and DOM—Document Object Model
    Vue之vue中的data为什么是一个函数+vue中路径别名alias设置
    vue之nextTick
    情感分析-英文电影评论
    wiki中文语料的word2vec模型构建
    python正则表达式
    leetcode
    智力题
    Event Recommendation Engine Challenge分步解析第七步
  • 原文地址:https://www.cnblogs.com/it888/p/3777368.html
Copyright © 2011-2022 走看看