博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 中自定义事件
阅读量:5021 次
发布时间:2019-06-12

本文共 1315 字,大约阅读时间需要 4 分钟。

自定义事件的步骤:

1.声明委托:

public delegate yourActionEventHandler(Object sender,ArguEvent e);

 

2.声明事件

public event yourActionEventHandler yourAction;

 

3.注册事件:

Class class = new Class();

class.yourAction += new yourActionEventHandler(Object sender,ArguEvent e);

 

4.实现事件处理函数:

public void yourActionEventHandler(Object sender,ArguEvent e)

{

//Here is your code

}

5.触发事件

public void Button1_Click(Object sender,ArguEvent e)

{

    yourAction(this,ArguEvent.Empty);

}

 

实例代码, 在class2中声明、触发事件,在class1中注册,处理事件

class1    {        static void Main(string[] args)        {            class2 ts = new class2();            ts.CloseAction += new    class2.CloseActionEventHandler(ts_CloseAction);            class2 ts2 = new class2();//此处引入第二个Class2的实例 作对比之用            ts.Run();        //ts2.Run(); 该方法如果执行了,编译器会报Class2中的CloseAction未将对象的引用设置到对象的实例,原因就是ts2并没有注册事件。            Console.Read();        }        static void ts_CloseAction(object sender, EventArgs e)        {            Console.WriteLine("触发了Test事件");        }    }    class2    {        public delegate void CloseActionEventHandler(Object sender, EventArgs e);        public event CloseActionEventHandler CloseAction;        public void Run()        {            CloseAction(this, EventArgs.Empty);        }    }

  

转载于:https://www.cnblogs.com/kfx2007/archive/2012/09/29/2708711.html

你可能感兴趣的文章
[网络流24题] 方格取数问题 (最大点权独立集)
查看>>
EVENT
查看>>
MySQL添加用户、删除用户与授权
查看>>
pthon/零起点(一、集合)
查看>>
字符串比较
查看>>
WTM_LayUI 二级联动
查看>>
flush caches
查看>>
anjular2以及微信小程序的一点比较
查看>>
博客收藏
查看>>
SQL Server优化常用SQL语句
查看>>
[持续交付实践] pipeline使用:Multibranch Pipeline
查看>>
序列——列表和元组(二)
查看>>
js 关于闭包的小总结
查看>>
php
查看>>
知乎使用过程中的几个问题和改进建议
查看>>
$.extend
查看>>
html手机滑动事件
查看>>
十八、AWT绘图技术
查看>>
win2012 配置wamp的若干错误
查看>>
python操作数据库
查看>>