事件的预订和撤消

在随后的例子中,我们声明了一个使用Button类的登录对话框类。对话框类含有两个按钮:OK和Cancel按钮。

程序清单13-2:

public class LoginDialog Form
{
 Button OkButton;
 Button CancelButton;
 public LoginDialog(){
    OkButton=new Button(...);
    OkButton.Click+=new EventHandler(OkButtonClick);
    CancelButton=new Button(...);
    CnacelButton.Click+=new EventHandler(CancelButtonClick);
}
void OkButtonClick(object sender,EventArgs e){
  //处理OkButton.Click事件
}
void CancelButtonClick(object sender,EventArgs e){
  //处理CancelButton.Click事件
}
}

在例子中使用了Button类的两个实例,事件的预订是通过为事件加上左操作符“+=”来实现的:

OkButton.Click+=new EventHandler(OkButtonClick);

这样,只要事件被触发,方法就会被调用。

事件的撤消则采用左操作符“-=”:

OkButton.Click-=new EventHandler(OkButtonClick);

如果在类中声明了事件,我们又希望象使用域的方式那样使用事件,那么这个事件就不能是抽象的,也不能显式地包含事件访问声明。满足了这两个条件后,在任何可以使用域的场合都同样可以使用事件。

注意:对事件的触发相当于调用事件所表示的原型-delegate,所以对delegate型原型的调用必须先经过检查,确保delegate不是null型的。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索button
, new
, 事件
, click
, 操作符
eventhandler
巢湖撤销引起大事件、jquery 撤销事件、ios摇晃事件撤销输入、撤销什邡事件、vim 撤销和恢复,以便于您获取更多的相关知识。

时间: 2024-10-02 23:10:16

事件的预订和撤消的相关文章

C#的事件(event)

形象的说,事件(event)就是类或对象用来"发出通知"的成员.通过提供事件的句柄,客户能够把事件和可执行代码联系在一起. 让我们一起先来看一个事件的例子.如果你熟悉MFC的话,理解这个例子应该不会很难. 程序清单13-1: public delegate void EventHandler(object sender,EventArgs e); public class Button:Control { public event EventHandler Click; protect

铁血规则:事件预订与取消预订

在编码的时候,我们经常预订某个事件来处理它,但很少取消事件的预订,这种做法可能导致程序在运行时出现一些异常.       如果你的某个用于处理事件的对象不是在运行期内永久存在的(比如,不是Singleton对象),那么请记住一条规则:在该对象(事件预订者)的生命周期中只要预订了其他对象(事件发布者)的事件,那么在该对象释放时,一定要取消这些事件的预订.否则,在预订者被释放后,发布者仍然保持着预订者的引用,在对应的事件被触发时,发布者仍然会持有预订者的引用(导致内存泄露),并且调用预订者的处理函数

PowerPoint2007不能撤消所做的更改

问题: 在 PowerPoint 2007 中不能撤消所做的更改. 分析: 如果尝试在自动恢复功能保存文件之后撤消所做的更改,则会出现此行为.当自动恢复功能保存文件时,Store Change 事件会保存在撤消堆栈中.当您尝试撤消在PowerPoint 2007 演示文稿中进行的更改时,实际上会撤消Store Change 事件. 解决方法: 若要解决此问题,请再次执行下列操作之一: • 在"快速访问工具栏"上单击"撤消". • 按 Ctrl+Z.

C#基础全接触

引用类型是类型安全的指针,它们的内存是分配在堆(保存指针地址)上的.String.数组.类.接口和委托都是引用类型.强制类型转换与as类型转换的区别:当类型转换非法时,强制类型转换将抛出一个System.InvalidCastException异常,而as不会抛出异常,它返回一个null值.用using创建别名:using console = System.Console;访问限定符:public  该成员可以被其他任何类访问protected 该成员只能被其派生类访问private  该成员只

循环任务切换器 CircleTaskSwitcher -- ESBasic 可复用的.NET类库(06)

 1.缘起:     假设我的订单处理系统有这样的需求:将一天24小时分为4个时段,凌晨2:15到8:30采用A类型的处理器处理接收到的订单,8:30到14:00采用B类型的处理器,14:00到20:00采用C类型的处理器,20:00到第二天凌晨2:15采用D类型的处理器.     即我们的订单处理器需要在任一天的2:15.8:30.14:00.20:00这四个时刻发生切换,这就是一个循环切换器所要做的工作.     我设计了ESBasic.Threading.Application. ICir

事件访问器

如Button的例子所示,大多数情况下事件的声明都省略了事件访问声明.什么情况下使用事件访问声明呢?答案是:如果每个事件的存储开销太大,我们就可以在类中包含事件访问声明,按私有成员的规则存入事件句柄列表. 访问器的声明包括两种:添加访问器声明(add-accessor-declaration)和删除访问器声明(remove-accessor-declaration). 访问器声明之后跟随相关执行代码的语句块.在添加访问器声明后的代码需要执行添加事件句柄的操作,在删除访问器声明后的代码需要执行删除

Dreamweaver实现客房预订业务系统

dreamweaver 客房预订业务的特点是顾客流动性大,其用户注册方式更为灵活,预订业务除了常用的验证外,还要防止在预订满的情况下继续预订客房.本实例将为读者介绍如何实现客房预订业务. 效果说明 图 96-1 所示是预订业务的基本界面,用户可以直接登录或注册并预订客房. 创作构思 通过程序检测用户是否成功登录,登录错误的是否能够注册成功,并添加用户的预订资料.通过" DataTime "类下的" Compare ",将用户预订的时间与其他用户已预订的时间进行比较,

基于EJB技术的商务预订系统的开发

技术已经越来越多地应用到大型网络系统开发中,本文中,笔者将介绍EJB(Enterprise Java Beans)的定义.基于EJB技术的应用系统结构模型以及EJB组件的内容和分类,最后结合基于EJB的结构模型和EJB组件开发了一个商务预订系统. EJB从技术上而言不是一种"产品",而是一种技术规范.SUN公司对EJB的定义是:EJB的结构是开发和配置基于组件的分布式商务应用程序的一种组件结构.用EJB结构开发的应用程序是可伸缩的.事务型的.多用户安全的.这些应用程序可能只需编写一次,

王通:“赶驴网事件“的SEO启发

最近一段,赶集网在央视的广告很疯狂,广告创意确实吸引人,不过那头驴子太抢风头,结果造成了很多人都记住了驴子,竟然没有记住赶集网,甚至把赶集网记成了"赶驴网",于是"赶驴网"这个关键词火了,每天搜索量上千,甚至一度超过了一万,我们看一下百度指数: 最早发现这个关键词火起来的是王建硕,在2006年的时候,百姓网与我合作,那事还叫客齐集,我给他们做顾问,他们的团队人虽然不多,但是执行力非常强.王建硕发现这个关键词火了起来之后,立刻在百度上投放广告,购买这个关键词.同时,百