【Access小品】亚投行--事件概述
时 间:2015-03-30 14:44:38
作 者:煮江品茶 ID:10802 城市:武汉
摘 要:【Access小品】亚投行 -- 事件概述
正 文:
说到事件,版友们并不陌生,大多数人都会写一个按钮的单击事件来实现一些功能。但是事件并不简单,以至于很多初学者对此很是挠头。最近不少版友问及这方面的问题,于是觉得对此需要说道说道概述概述。
什么是事件?事件包含什么要素?在计算机术语中,事件定义为“可识别的操作”。简单的讲,就是一些规定动作发生了,这些发生了的规定动作就是事件。比如按钮单击了,文本框的数据更新了等等。“可识别的”就是某种程序语言程序框架规定了的,比如文本框规定有获得焦点事件,所以文本框可以识别焦点事件。而标签没有获得焦点事件,所以它也就无法识别这种事件。再比如你打算将鼠标悬停在某个控件上,使得这个控件背景色发生改变,这种功能在Access中很难实现,其原因在于Access识别不了这个悬停操作。而同样的要求对于Web网页来说,是一个简单愉快的事情,原因是网页具有这个可识别的操作。
那么事件究竟包含一些什么要素呢?事件至少包含触发者和事件处理器这两个要素。窗体和控件都可能是事件的触发者,当然在ADO或者SQL SERVER中还有更虚拟化的触发者。触发者通常是一个对象,它们可能是视觉可见的,也可能是视觉不可见的,无论如何他们都是一个对象。所以事件从属于对象。处理器是什么呢?处理器就是对象做出某种可识别的操作后,你所需要在这个操作做出的反应。比如单击按钮,你希望筛选子窗体中的数据,处理器就担负起筛选的功能。
在Access中,处理器是灵活的,可以有多种表现形式。它可以是一个内置的函数或者自定义的函数,也可是一个宏。比较常用的是一个特定的子程序,这个特定的子程序的名称是控件(或窗体)名加下划线加事件名(形同Private Sub Command0_Click()),同时它还有规定的形参。有意思的是,除了这种特定的子程序外,Access是不能将其他自定义子程序直接作为事件处理器的(意指不能直接绑定)。但是可以通过间接的调用将自定义子程序作为事件处理器。在本文所附的动画中,可以看到几种事件处理器的处理方式。
其实,事件的要素不仅仅包含触发者和事件处理器。如果你知道点javascript,那么你一定知道冒泡事件。比如你单击td标签,那么这个单击的操作,还可以引起tr和table的单击事件发生,如果这个table还包含在一个div中,那么它还引起div的单击事件发生。这说明什么?这说明事件除了有触发者外,还有响应者,每个响应者还可能具有不同的事件处理器。所以事件的响应者本来是一个很重要的概念。但是为什么Access中看不到这个重要角色呢?原因在于Access这类的窗体处理程序中,触发者和响应者为同一个对象,也就是自己触发并由自己响应。
更有甚者,在WPF中,有一种叫做路由事件的事件类型,它除了有触发者、响应者、事件处理器外,还存在事件的路由。这种路由可能是由下向上的冒泡事件,也可能是由上向下的隧道事件。所以事件的要素在不同的语言和程序框架中,是有所不同的。不过你现在可以记住的只是:事件至少包含触发者和事件处理器。
事件还会存在前后秩序。比如打开一个窗体,那么这个打开的操作可能引起一系列有先后秩序的事件,比如打开、加载等。光标进入一个文本框,那么可能引起进入、获得焦点事件。如果在这种可能引起多个事件的操作上,对不同事件都分别写处理器,就一定需要慎重了。原因在于事件有先后顺序,你的不同处理器是否考虑了这个顺序。另外事件之间可能有吞并的关系,比如单击事件可能吞并掉双击事件的某些功能。
回到亚投行的筹建这个事件上来。我们可以这样来看这个事件:中国是亚投行的事件触发者,中国和其他各国是这个事件的响应者,各国对亚投行筹建会采取各种自己的政策和措施,这些政策和措施就是事件响应者的事件处理器。由于目前不知道各国会如何行动,以及相互之间如何博弈,所以亚投行的结果尚未可知。不过事件已经引发,处理过程正在继续,结果终究会产生。
示例:

视图:

Access软件网QQ交流群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- 统计当月之前(不含当月)的记录...(03.11)
- 【Access Inputbo...(03.03)
- 按回车键后光标移动到下一条记录...(02.12)
- 【Access Dsum示例】...(02.07)
- Access对子窗体的数据进行...(02.05)
- 【Access高效办公】上月累...(01.09)
- 【Access高效办公】上月累...(01.06)
- 【Access Inputbo...(12.23)
- 【Access Dsum示例】...(12.16)

学习心得
最新文章
- 仓库管理实战课程(8)-商品信息功...(04.01)
- 仓库管理实战课程(7)-链接表(03.31)
- 仓库管理实战课程(6)-创建查询(03.29)
- 仓库管理实战课程(5)-字段属性(03.27)
- 设备装配出入库管理系统;基于Acc...(03.24)
- 仓库管理实战课程(4)-建表操作(03.22)
- 仓库管理实战课程(3)-需求设计说...(03.19)
- 仓库管理实战课程(2)-软件背景和...(03.18)
- 仓库管理实战课程(1)-讲师介绍(03.16)
- 统计当月之前(不含当月)的记录数怎...(03.11)