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、遍历受关注的窗体,并实现接口 实现接口的方法可以写在子窗体中

  • 相关阅读:
    CF763C Timofey and Remoduling
    CF762E Radio Stations
    CF762D Maximum Path
    CF763B Timofey and Rectangles
    URAL1696 Salary for Robots
    uva10884 Persephone
    LA4273 Post Offices
    SCU3037 Painting the Balls
    poj3375 Network Connection
    Golang zip压缩文件读写操作
  • 原文地址:https://www.cnblogs.com/luwei-s/p/4541923.html
Copyright © 2011-2022 走看看