• 自定义事件之C#设计笔记(十)


    一、引用System.Runtime.InteropServices

    二、 扩展EventArgs类,用于附加相关关键数据,如value1,value2,value3等等
    [ComVisible(true)]
    public class DataArgs : EventArgs
    {
    public int value1 { get; set; }
    public int value2 { get; set; }
    public int value3 { get; set; }
    }

    三、定义相应事件(eventArgs为DataArgs )
    public delegate void DataEventHandler(object sender, DataArgs e);
    在某类中声明相应事件
    public event DataEventHandler DataChanged;

    四、事件触发
    private DataArgs data = new DataArgs();
    public DataArgs Data
    {
    get
    {
    return data;
    }
    set
    {
    if(data!=value)
    {
    data = value;
    if(DataChanged!=null)
    {
    DataChanged(this, data);
    }
    }
    }
    }
    注:DataArgs 属性与DataChanged事件同属一类中。

    五、其他类订阅该事件后,只要修改DataArgs属性,则自动触发该事件,起到传输关键数据作用。
    1、如更新属性 DataArgs parm = new DataArgs();
    parm.value1 = checkBoxEx.Checked ? 1 : 0;
    parm.addr = this.baseAddr;
    this.Data = parm;
    2、 如订阅事件view.DataChanged += View_DataChanged;
    并实现
    private void View_DataChanged(object sender, DataArgs e)
    {
    //获取e中关键数据
    }

  • 相关阅读:
    GPT-4o
    docker部署项目
    Java之分支结构
    操作系统—线程的实现方式和多线程模型
    手把手写深度学习(0):专栏文章导航
    npm ERR! Missing script: “start“
    第3章 AOP通知
    SRC之若依系统弱口令
    【故事证明和概率公理】
    使用HTML+CSS技术制作篮球明星介绍网站
  • 原文地址:https://blog.csdn.net/weixin_48408892/article/details/127900825