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();
                    }

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

  • 相关阅读:
    Python环境变量的配置
    关于selenium+python的googledirver和iedirver的配置
    jdk1.6环境变量配置
    windows server 2012R2安装激活码
    Git生成SSHKey
    Linux下配置和安装VNCServer远程服务
    Win7 64位硬盘安装Ubuntu 64位的细微配置
    apache tomcat 8.0 显示目录文件
    跨域登录
    jsonp 代码优化
  • 原文地址:https://www.cnblogs.com/it888/p/3777368.html
Copyright © 2011-2022 走看看