zoukankan      html  css  js  c++  java
  • 分别用委托和事件和接口实现多窗体间的传值

    委托实现多窗口传值的一般流程是
    1、创建委托类型 private Action<string> AfterMsgSend { get; set; }
    2、创建窗体对象 ChildFrm frm = new ChildFrm();
    3、给委托注册方法(追加),注意此处的方法是窗体的方法 即frm.方法 AfterMsgSend += frm.SetText;//窗体打开之前给委托注册方法
    4、frm.Show();
    5、触发方法 AfterMsgSend(txtMessage.Text.Trim());

    事件实现多窗口传值的一般流程是
    1、 private event EventHandler AfterMsgChangeEvent; //定 义消息发布的事件
    2、 ChildFrm frm = new ChildFrm();
    AfterMsgChangeEvent += frm.AfterParentFrmTextChange; //给窗体注册事件
    //这个是子窗体中的方法,与委托类似
    public void AfterParentFrmTextChange(object sender, EventArgs e)
    {
    //拿到父窗体的传来的文本
    TextBoxMsgChangeEventArg arg = e as TextBoxMsgChangeEventArg;
    this.SetText(arg.Text);
    }
    frm.Show()
    3、触发事件
    AfterMsgChangeEvent(this, new TextBoxMsgChangeEventArg() { Text = this.txtMessage.Text });

    //上面用到的方法

    public class TextBoxMsgChangeEventArg : EventArgs
    {
    public string Text { get; set; }
    }

    用接口实现多窗口传值的流程
    1、定义接口
    2、主窗体中创建一个集合(属性)来接收关注窗体
    3、创建窗口,如果要实现接口将其加入到受主窗体所关注的窗体中来
    4、遍历受关注的窗体,并实现接口 实现接口的方法可以写在子窗体中

  • 相关阅读:
    [SDOI2012]任务安排
    JavaScript数据存储和深浅拷贝实际运用
    在VUE中使用Echarts
    JavaScript的原型链
    关于JavaScript的43道题①
    JS为什么是单线程的?
    HTTP协议②缓存
    HTTP协议①介绍
    树形结构的数据渲染(element-ui&VUE)
    js中定义变量之②var let const的区别
  • 原文地址:https://www.cnblogs.com/luwei-s/p/4541923.html
Copyright © 2011-2022 走看看