从某种意义上说,事件是一种特殊的方法,对象使用它来告知一些对客户(使用对象的代码)有用的状态变更。实际上,Visual Basic 2010文档经常将事件称为方法。事件是可用特殊方式调用的方法——通常通过用户与窗体中的控件交互或通过Widows本身——而不是在代码语句中被直接调用 。
事件的类型有很多种,触发这些事件也有很多方式口。用户交互并非触发事件的唯一方式,可以通过下列4种方式来触发事件:
- 用户与程序交互可以触发事件,例如,单击按钮将触发其Click事件;
- 对象在需要时可触发自己的事件,例如,定时器每隔一段时间触发其Timer事件;
- 操作系统(不管用户运行的是哪个版本的Windows)可以触发事件;
- 使用Visual Basic代码调用事件以触发它们,这与调用方法一样。
VisualBasic将为事件创建一个事件过程。完整的事件声明如下:
Private Sub picText MouseDown(ByVal sender As Object, Byval e As System.Windows.Forms.MouseEvantArgs) Handles picText.MouseDown
新事件的声明包含对象名和下划线。括号内的项称为参数。事件参数是一个变量,由Visual Basic创建并分配值。这些参数变量用于获取(有时也用于设置)事件内部的相关信息口这些数据可能是文本、数字或对象——几乎可以是任何东西。事件过程内的多个参数总是用逗号分开。可以看到,MouseDown事件有两个参数。事件过程被触发时,Visual Basic自动创建参数变量并为它们赋值,供在事件过程的这次调用中使用。下次事件过程发生时,参数的值将重新设置。在代码中可以根据这些参数的值来做作出判断或执行操作。
ByVal的后面是参数名,而As后面的字符串指出了参数包含的数据类型。第一个参数sender存储一个通用对象。Object参数可以是Visual Basic支持的任何对象类型。不同参数变量包含不同类型的信息。有些包含文本,有些包含信信,还有有些(很多)包含对象。例如,sender参数将保存对引起事件的控件的引用。参数e则表明真正的行为在何处发生。参数e也存储一个对象,但这个对象是MouseEventArgs类型。这个对象有与MouseDown事件相关的属性。要查看这些属性,输入下列代码,但在点号后不要按任何键。输入点号后,将显示一个下拉列表,显示对象e的成员(属性和方法)。通过对象e,可以知道关于MouseDown事件的很多信息。
System.Windows.Forms.MousaEventArgs的常用成员