• 分别用委托和事件和接口实现多窗体间的传值


    委托实现多窗口传值的一般流程是
    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、遍历受关注的窗体,并实现接口 实现接口的方法可以写在子窗体中

  • 相关阅读:
    filp_open/filp_close/vfs_read/vfs_write
    memcpy一种实现方法
    memset函数的实现&printf函数几种输出格式的输出结果
    break退出循环分析
    定义指针变量作为返回值函数执行时报 段错误(核心已转储)
    node实现防盗链
    js实现输入密码之延迟星号和点击按钮显示或隐藏
    rem适配
    使用字蛛教程以及遇到的bug
    es6学习笔记-proxy对象
  • 原文地址:https://www.cnblogs.com/luwei-s/p/4541923.html
Copyright © 2020-2023  润新知