[叩响C#之门]写给初学者:自定义事件

16.4.2自定义事件

通过上一节的论述,我们知道要创建一个事件驱动的程序需要下面的步 骤:

1.声明关于事件的委托;

2.声明事件;

3.编写触发事件的函数;

4.创建事 件处理程序;

5.注册事件处理程序;

6.在适当的条件下触发事件.

现在我们来编写一 个自定义事件的程序.主人养了一条忠实的看门狗,晚上主人睡觉的时候,狗负责看守房子.一旦有小偷进来 ,狗就发出一个Alarm事件,主人接到Alarm事件后就会采取相应的行动.假设小偷于2009年元旦午夜时分到 达.

作者:梁斌玉 摘自《C#初学课堂》

本章目录

第16章 委托与事件

16.1委 托

16.2多播委托

16.3匿名函数

16.4事件处理机制

16.4.1事件处理机制的原 理

16.4.2自定义事件

试一试:自定义事件

//事件发送者

class Dog
  {

//1.声明关于事件的委托;

public delegate void AlarmEventHandler(object sender, EventArgs e);

//2.声明事件;

public event AlarmEventHandler Alarm;

时间: 2024-12-30 01:30:49

[叩响C#之门]写给初学者:自定义事件的相关文章

[叩响C#之门]写给初学者:滚动条原理

17.9.4 在滚动窗口中绘图 窗体的大小由窗体的Size属性确定,这个大小包括了窗体的标题栏和边框.而窗体中用于显示客户文 档的区域称为工作区(ClientRectangle),其大小用窗体的ClientSize 属性表示(如图17-20所示). 在图17-20中,窗体的大小为308×234像素,其中标题栏的宽度为30像素,边框的宽度为4像素,所以 工作区的大小为300×200像素. 如果我们要在300×200像素的工作区内显示一个200×150像素的矩形和一个300×100像素的椭圆,会 出

[叩响C#之门]写给初学者:类和对象的概念

面向对象编程:类和对象的概念 [说明:本文是给刚刚接触编程的初学者看的,大佬们看起来 可能觉得很简单,勿怪] 类(Class) 面向对象思想来源于对现实世界的认知.现实世界缤纷复杂.种类繁多,难于认识和理 解.但是聪明的人们学会了把这些错综复杂的事物进行分类,从而使世界变得井井有条.比如我们由各式 各样的汽车抽象出汽车的概念,由形形色色的猫抽象出猫的概念,由五彩斑斓的鲜花抽象出花的概念等. 汽车.猫.鲜花都代表着一类事物.每一类事物都有特定的状态,比如汽车的品牌.时速.马力.耗油量 .座椅数,小

[叩响C#之门]写给初学者:平移变换

17.9 坐标变换 默认情况下,坐标系的原点位于视图区域的左上角,水平方向为x轴,竖直方向为y轴.但有时候我们 需要改变坐标轴的位置或方向,这时就需要坐标变换.常用的坐标变换有平移变换.旋转变换和伸缩变换 三种. 17.9.1 平移变换 平移变换是指把坐标系的原点由一个位置平移到另一个位置,我们可以通过Graphics 类的 TranslateTransform()方法实现平移变换. 下面我们通过一个示例来说明怎样进行平移变换. 图17-16 "坐标变换"窗口 新建一个名为"

jsp-怎么写JSP的自定义标签

问题描述 怎么写JSP的自定义标签 我要在页面判断一个Set是否contains某值 写EL的自定义标签还是 OGNL 怎么写 解决方案 参考:http://www.cnblogs.com/zhaoyang/archive/2011/12/25/2301108.html 解决方案二: 用jstl判断就可以了 解决方案三: 第2章 2.11 JSP2的自定义标签实现jsp 自定义标签jsp2的自定义标签

叩响C#之门

问题描述 请问谁有叩响C#之门这本电子书,pdf或pdg格式都可以,谢谢. 解决方案 解决方案二:http://msdn.microsoft.com/zh-cn/library/cc437899(v=vs.71).aspx#vborivisualbasicinactionendtoendsolutionsanchor2解决方案三:虽然不是你要的那本书,但是这里的内容足够强大,上边很多的事例,应该满足你的需要.解决方案四:如果你是新手,上边的演练你都做一遍,基本就能找工作了.解决方案五:不妨试试三

jQuery自定义事件

在JS中,消息的通知是通过事件表达的,当代码库增长到一定的规模就需要考虑将行为和自定义事件进行解耦,通过事件机制可以将类设计为独立的模块,通过事件对外通信提高了程序的开发效率. 了解自定义事件的概念: 类似 DOM 的行为:你在 DOM 节点(包括 document 对象)监听并触发自定义事件.这些事件既可以冒泡,也可以被拦截.这正是 Prototype.jQuery 和 MooTools 所做的.如果事件不能扩散,就必须在触发事件的对象上进行监听. 命名空间:一些框架需要你为事件指定命名空间,

JavaScript使用自定义事件实现简单的模块化开发

WEB前端最常见驱动方式就是事件了, 所有交互等等都是通过事件,前端的常见事件有:     UI事件: 焦点事件: 鼠标事件: 滚轮事件: 文本事件: 键盘事件: 变动事件: 现在网页上有一个输入框, 如果我们要对用户输入的字符串进行过滤, 或者是截获用户的输入进行处理的话, 我们要肿么办  同学们纷纷举手说:"老师,我知道,是使用添加事件", 老师也很欣慰地点了点头, 这群家伙真的是越来越聪明了, 老师又问了"如果要取消用户的输入怎么办了", 坐在最前排眼睛最小的

js也可以有自定义事件 注入就是这么爽

js 在c#中有delegate,还有特殊的可以直接应用于事件编程的delegate,那就是event.而在js中没有c#的event,更没有delegate,有的只是dom元素内置的的native的不可扩展的event,比如无法为input元素添加事件,只能在其拥有的事件(如onclick=handler)上扩展应用.那么能不能做到自定义的事件模拟效果呢?答案是肯定的,也就是本文的主题. 首先弄明白一下事件的意图--可以在发生一件事的时候执行额外的代码,如document.attachEven

浅析C#的事件处理和自定义事件

一.了解C#中的预定义事件处理机制 在写代码前我们先来熟悉.net框架中和事件有关的类和委托,了解C#中预定义事件的处理. EventArgs是包含事件数据的类的基类,用于传递事件的细节. EventHandler是一个委托声明如下 public delegate void EventHandler( object sender , EventArgs e ) 注意这里的参数,前者是一个对象(其实这里传递的是对象的引用,如果是button1的click事件则sender就是button1),后面