Office中国论坛/Access中国论坛

标题: 【Access小品】亚投行 -- 事件概述 [打印本页]

作者: todaynew    时间: 2015-3-30 14:39
标题: 【Access小品】亚投行 -- 事件概述
本帖最后由 todaynew 于 2015-3-30 14:41 编辑

  这几天新闻热议的是亚投行的筹建,目前已有包括亚洲大多数国家和地区,以及部分西方发达国家响应中国的倡议,并申请加入亚投行。美国人搞了些小动作,但效果不佳,其最坚定的盟友英国、德国、法国、意大利、澳大利亚和韩国都提出参与亚投行。亚投行的筹建是一个大的事件,这个事件会在相当一段时间内对世界经贸格局产生重大影响。

  说到事件,版友们并不陌生,大多数人都会写一个按钮的单击事件来实现一些功能。但是事件并不简单,以至于很多初学者对此很是挠头。最近不少版友问及这方面的问题,于是觉得对此需要说道说道概述概述。

  什么是事件?事件包含什么要素?在计算机术语中,事件定义为“可识别的操作”。简单的讲,就是一些规定动作发生了,这些发生了的规定动作就是事件。比如按钮单击了,文本框的数据更新了等等。“可识别的”就是某种程序语言程序框架规定了的,比如文本框规定有获得焦点事件,所以文本框可以识别焦点事件。而标签没有获得焦点事件,所以它也就无法识别这种事件。再比如你打算将鼠标悬停在某个控件上,使得这个控件背景色发生改变,这种功能在Access中很难实现,其原因在于Access识别不了这个悬停操作。而同样的要求对于Web网页来说,是一个简单愉快的事情,原因是网页具有这个可识别的操作。

  那么事件究竟包含一些什么要素呢?事件至少包含触发者和事件处理器这两个要素。窗体和控件都可能是事件的触发者,当然在ADO或者SQL SERVER中还有更虚拟化的触发者。触发者通常是一个对象,它们可能是视觉可见的,也可能是视觉不可见的,无论如何他们都是一个对象。所以事件从属于对象。处理器是什么呢?处理器就是对象做出某种可识别的操作后,你所需要在这个操作做出的反应。比如单击按钮,你希望筛选子窗体中的数据,处理器就担负起筛选的功能。

  在Access中,处理器是灵活的,可以有多种表现形式。它可以是一个内置的函数或者自定义的函数,也可是一个宏。比较常用的是一个特定的子程序,这个特定的子程序的名称是控件(或窗体)名加下划线加事件名(形同Private Sub Command0_Click()),同时它还有规定的形参。有意思的是,除了这种特定的子程序外,Access是不能将其他自定义子程序直接作为事件处理器的(意指不能直接绑定)。但是可以通过间接的调用将自定义子程序作为事件处理器。在本文所附的动画中,可以看到几种事件处理器的处理方式。

  其实,事件的要素不仅仅包含触发者和事件处理器。如果你知道点Javascript,那么你一定知道冒泡事件。比如你单击<td>标签,那么这个单击的操作,还可以引起<tr>和<table>的单击事件发生,如果这个<table>还包含在一个<div>中,那么它还引起<div>的单击事件发生。这说明什么?这说明事件除了有触发者外,还有响应者,每个响应者还可能具有不同的事件处理器。所以事件的响应者本来是一个很重要的概念。但是为什么Access中看不到这个重要角色呢?原因在于Access这类的窗体处理程序中,触发者和响应者为同一个对象,也就是自己触发并由自己响应。

  更有甚者,在WPF中,有一种叫做路由事件的事件类型,它除了有触发者、响应者、事件处理器外,还存在事件的路由。这种路由可能是由下向上的冒泡事件,也可能是由上向下的隧道事件。所以事件的要素在不同的语言和程序框架中,是有所不同的。不过你现在可以记住的只是:事件至少包含触发者和事件处理器。

  事件还会存在前后秩序。比如打开一个窗体,那么这个打开的操作可能引起一系列有先后秩序的事件,比如打开、加载等。光标进入一个文本框,那么可能引起进入、获得焦点事件。如果在这种可能引起多个事件的操作上,对不同事件都分别写处理器,就一定需要慎重了。原因在于事件有先后顺序,你的不同处理器是否考虑了这个顺序。另外事件之间可能有吞并的关系,比如单击事件可能吞并掉双击事件的某些功能。

  回到亚投行的筹建这个事件上来。我们可以这样来看这个事件:中国是亚投行的事件触发者,中国和其他各国是这个事件的响应者,各国对亚投行筹建会采取各种自己的政策和措施,这些政策和措施就是事件响应者的事件处理器。由于目前不知道各国会如何行动,以及相互之间如何博弈,所以亚投行的结果尚未可知。不过事件已经引发,处理过程正在继续,结果终究会产生。

示例:[attach]56033[/attach]

视图:
[attach]56034[/attach]











作者: huangli0356    时间: 2015-3-30 15:02
坐等结果..{:soso_e113:}{:soso_e113:}{:soso_e113:}
作者: tmtony    时间: 2015-3-30 16:09
老汉,很会利用时事啊
作者: 风中漫步    时间: 2015-3-30 16:24
动画详细讲述了msgbox的使用{:soso_e120:}
谢谢分享
作者: todaynew    时间: 2015-3-30 16:30
风中漫步 发表于 2015-3-30 16:24
动画详细讲述了msgbox的使用
谢谢分享

鬼打架的见仁见智。
作者: yanwei82123300    时间: 2015-3-31 11:20
todaynew 老师的写作非常好!联系实际联系论坛内容,真棒!!!适合给我们菜鸟级做培训老师!
作者: p51219    时间: 2015-4-11 00:22
好好好好好好好好好好好好
作者: nncchh    时间: 2015-7-20 14:26
学习学习,谢谢分享!
作者: nncchh    时间: 2015-7-20 14:26
学习学习,谢谢分享!
作者: a30088    时间: 2015-7-23 17:05
谢谢分享!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3