C#事件机制(记住流程)
转自:http://jimmyloveforever.blog.163.com/blog/static/119775247200951303935836/
public delegate void EventHandler(object from , myEventArgs e)
System.EventArgs是包含事件数据的类的基类,在代码中可直接使用EventArgs类。
2,定义事件格式为:
event 事件的委托名 事件名
如事件TextOut定义:
public event EventHandler TextOut;
3,事件的激活一般写成:
if (TextOut != null)
TextOut(this,new EventArgs());
检查TextOut事件有没有被订阅,如不为null,则表示有用户订阅。订阅事件的是
TestApp类,首先实例化EventSource,然后订阅事件:
evsrc.TextOut += new EventSource.EventHandler(CatchEvent);
也可以取消订阅:
evsrc.TextOut -= new EventSource.EventHandler(CatchEvent);
using System; using System.Collections.Generic; using System.Linq; using System.Text;// 定义事件包含数据 public class MyEventArgs : EventArgs {private string StrText;public MyEventArgs(string StrText){this.StrText = StrText;}public string GetStrText{get{return StrText;}} } // 发布事件的类 class EventSource {MyEventArgs EvArgs = new MyEventArgs("触发事件");// 定义委托 public delegate void EventHandler(object sender, MyEventArgs e);// 定义事件 public event EventHandler TextOut;// 激活事件的方法 public void TriggerEvent(){if (TextOut == null)TextOut(this, EvArgs);} } // 订阅事件的类 class TestApp {public static void Main(){EventSource evsrc = new EventSource();// 订阅事件 evsrc.TextOut += new EventSource.EventHandler(CatchEvent);// 触发事件 evsrc.TriggerEvent();Console.WriteLine("------");// 取消订阅事件 evsrc.TextOut -= new EventSource.EventHandler(CatchEvent);// 触发事件 evsrc.TriggerEvent();Console.WriteLine("------"); // 事件订阅已取消,什么也不执行 TestApp theApp = new TestApp();evsrc.TextOut += new EventSource.EventHandler(theApp.InstanceCatch);evsrc.TriggerEvent();Console.WriteLine("------");}// 处理事件的静态方法 public static void CatchEvent(object from, MyEventArgs e){Console.WriteLine("CatchEvent:{0}", e.GetStrText);}// 处理事件的方法 public void InstanceCatch(object from, MyEventArgs e){Console.WriteLine("InstanceCatch:{0},e.GetStrText");} }
转载于:https://www.cnblogs.com/anbylau2130/archive/2013/02/21/2920687.html
C#事件机制(记住流程)相关推荐
- 探究react的事件机制(合成事件)
一.react的事件机制 react自身实现了一套事件机制,包括事件的注册.事件的存储.事件的合成及执行等. react 的所有事件并没有绑定到具体的dom节点上而是绑定在了document 上,然后 ...
- [wxWidget系列] wxWidget的事件机制
wxWidget 的事件机制 wxWidget 通过在编译期生成静态的事件表来实现事件类的事件处理.所有想要使用事件处理机制的地方都需要继承 wxEvtHandler 类(直接或间接). 由于 win ...
- android 事件机制总结
http://www.cnblogs.com/sunzn/archive/2013/05/10/3064129.html http://www.cnblogs.com/sunzn/archive/20 ...
- Spring事件机制
一.事件驱动模型简介 事件驱动模型也就是我们常说的观察者,或者发布-订阅模型:理解它的几个关键点: 首先是一种对象间的一对多的关系:最简单的如交通信号灯,信号灯是目标(一方),行人注视着信号灯(多方) ...
- React事件机制 - 源码概览(下)
上篇文档 React事件机制 - 源码概览(上)说到了事件执行阶段的构造合成事件部分,本文接着继续往下分析 批处理合成事件 入口是 runEventsInBatch // runEventsInBat ...
- Android事件机制:事件传递和消费
Android中的事件在表现形式上有很多,如onTach.onClick和onLongClick等,在具体微观上的表现形势有action_down.action_move和action_up等. ...
- 深入理解DOM事件机制
前言 本文主要介绍: DOM事件级别 DOM事件流 DOM事件模型 事件代理 Event对象常见的方法和属性 一.DOM事件级别 针对不同级别的DOM,我们的DOM事件处理方式也是不一样的. DOM级 ...
- Android事件机制详解
转自:http://www.codeceo.com/article/android-event.html 1概述 在Android平台上,主要用到两种通信机制,即Binder机制和事件机制,前者用于跨 ...
- click事件在什么时候出发_超全的js事件机制amp;事件委托
超全的js事件机制&事件委托,想要理解js事件只需认真看完此篇即可~ 目录结构: 什么是事件机制 事件冒泡事件捕获 DOM事件流事件委托 误区 在同一个对象上注册事件,并不一定按照注册顺序执行 ...
最新文章
- umi3 如何管理model_django admin 管理工具
- 通过这个故事理解啥是 NIO
- Http 与 Socket 区别
- hdu 1404/zoj 2725 Digital Deletions 博弈论
- csdn的博客文化真好
- python日志汇总
- javaparser_JavaParser入门:以编程方式分析Java代码
- 猎豹MFC--文件对话框CFileDialog
- android handler内存,Android handler之内存泄露原因揭示
- 【WEB基础】HTML CSS 基础入门(2)选取工具:VS2019安装使用
- vmware-tools for LFS
- mysql phpwind_Linux Apache php MySQL GD PHPWind 集成环境配置
- 测试用例(等价类划分法)
- 云计算机怎么给学生机安装软件,如何在云计算机服务器中安装学生机应用程序? 在云计算机服务器中安装学生机应用程序的方法?...
- linux du命令使用
- oracle中的||是什么意思?
- 0xE06D7363: Microsoft C++ Exception.
- matlab示波器有功功率,巧用示波器计算功率
- 飘了,英特尔2年内要发布高效芯片超过苹果M1
- python strip 函数用法及介绍