設(shè)為首頁收藏本站Access中國

Office中國論壇/Access中國論壇

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

返回列表 發(fā)新帖
查看: 3457|回復(fù): 9
打印 上一主題 下一主題

[Access本身] 【Access小品】亞投行 -- 事件概述

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2015-3-30 14:39:43 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本帖最后由 todaynew 于 2015-3-30 14:41 編輯

  這幾天新聞熱議的是亞投行的籌建,目前已有包括亞洲大多數(shù)國家和地區(qū),以及部分西方發(fā)達(dá)國家響應(yīng)中國的倡議,并申請加入亞投行。美國人搞了些小動(dòng)作,但效果不佳,其最堅(jiān)定的盟友英國、德國、法國、意大利、澳大利亞和韓國都提出參與亞投行。亞投行的籌建是一個(gè)大的事件,這個(gè)事件會(huì)在相當(dāng)一段時(shí)間內(nèi)對世界經(jīng)貿(mào)格局產(chǎn)生重大影響。

  說到事件,版友們并不陌生,大多數(shù)人都會(huì)寫一個(gè)按鈕的單擊事件來實(shí)現(xiàn)一些功能。但是事件并不簡單,以至于很多初學(xué)者對此很是撓頭。最近不少版友問及這方面的問題,于是覺得對此需要說道說道概述概述。

  什么是事件?事件包含什么要素?在計(jì)算機(jī)術(shù)語中,事件定義為“可識(shí)別的操作”。簡單的講,就是一些規(guī)定動(dòng)作發(fā)生了,這些發(fā)生了的規(guī)定動(dòng)作就是事件。比如按鈕單擊了,文本框的數(shù)據(jù)更新了等等。“可識(shí)別的”就是某種程序語言程序框架規(guī)定了的,比如文本框規(guī)定有獲得焦點(diǎn)事件,所以文本框可以識(shí)別焦點(diǎn)事件。而標(biāo)簽沒有獲得焦點(diǎn)事件,所以它也就無法識(shí)別這種事件。再比如你打算將鼠標(biāo)懸停在某個(gè)控件上,使得這個(gè)控件背景色發(fā)生改變,這種功能在Access中很難實(shí)現(xiàn),其原因在于Access識(shí)別不了這個(gè)懸停操作。而同樣的要求對于Web網(wǎng)頁來說,是一個(gè)簡單愉快的事情,原因是網(wǎng)頁具有這個(gè)可識(shí)別的操作。

  那么事件究竟包含一些什么要素呢?事件至少包含觸發(fā)者和事件處理器這兩個(gè)要素。窗體和控件都可能是事件的觸發(fā)者,當(dāng)然在ADO或者SQL SERVER中還有更虛擬化的觸發(fā)者。觸發(fā)者通常是一個(gè)對象,它們可能是視覺可見的,也可能是視覺不可見的,無論如何他們都是一個(gè)對象。所以事件從屬于對象。處理器是什么呢?處理器就是對象做出某種可識(shí)別的操作后,你所需要在這個(gè)操作做出的反應(yīng)。比如單擊按鈕,你希望篩選子窗體中的數(shù)據(jù),處理器就擔(dān)負(fù)起篩選的功能。

  在Access中,處理器是靈活的,可以有多種表現(xiàn)形式。它可以是一個(gè)內(nèi)置的函數(shù)或者自定義的函數(shù),也可是一個(gè)宏。比較常用的是一個(gè)特定的子程序,這個(gè)特定的子程序的名稱是控件(或窗體)名加下劃線加事件名(形同Private Sub Command0_Click()),同時(shí)它還有規(guī)定的形參。有意思的是,除了這種特定的子程序外,Access是不能將其他自定義子程序直接作為事件處理器的(意指不能直接綁定)。但是可以通過間接的調(diào)用將自定義子程序作為事件處理器。在本文所附的動(dòng)畫中,可以看到幾種事件處理器的處理方式。

  其實(shí),事件的要素不僅僅包含觸發(fā)者和事件處理器。如果你知道點(diǎn)Javascript,那么你一定知道冒泡事件。比如你單擊<td>標(biāo)簽,那么這個(gè)單擊的操作,還可以引起<tr>和<table>的單擊事件發(fā)生,如果這個(gè)<table>還包含在一個(gè)<div>中,那么它還引起<div>的單擊事件發(fā)生。這說明什么?這說明事件除了有觸發(fā)者外,還有響應(yīng)者,每個(gè)響應(yīng)者還可能具有不同的事件處理器。所以事件的響應(yīng)者本來是一個(gè)很重要的概念。但是為什么Access中看不到這個(gè)重要角色呢?原因在于Access這類的窗體處理程序中,觸發(fā)者和響應(yīng)者為同一個(gè)對象,也就是自己觸發(fā)并由自己響應(yīng)。

  更有甚者,在WPF中,有一種叫做路由事件的事件類型,它除了有觸發(fā)者、響應(yīng)者、事件處理器外,還存在事件的路由。這種路由可能是由下向上的冒泡事件,也可能是由上向下的隧道事件。所以事件的要素在不同的語言和程序框架中,是有所不同的。不過你現(xiàn)在可以記住的只是:事件至少包含觸發(fā)者和事件處理器。

  事件還會(huì)存在前后秩序。比如打開一個(gè)窗體,那么這個(gè)打開的操作可能引起一系列有先后秩序的事件,比如打開、加載等。光標(biāo)進(jìn)入一個(gè)文本框,那么可能引起進(jìn)入、獲得焦點(diǎn)事件。如果在這種可能引起多個(gè)事件的操作上,對不同事件都分別寫處理器,就一定需要慎重了。原因在于事件有先后順序,你的不同處理器是否考慮了這個(gè)順序。另外事件之間可能有吞并的關(guān)系,比如單擊事件可能吞并掉雙擊事件的某些功能。

  回到亞投行的籌建這個(gè)事件上來。我們可以這樣來看這個(gè)事件:中國是亞投行的事件觸發(fā)者,中國和其他各國是這個(gè)事件的響應(yīng)者,各國對亞投行籌建會(huì)采取各種自己的政策和措施,這些政策和措施就是事件響應(yīng)者的事件處理器。由于目前不知道各國會(huì)如何行動(dòng),以及相互之間如何博弈,所以亞投行的結(jié)果尚未可知。不過事件已經(jīng)引發(fā),處理過程正在繼續(xù),結(jié)果終究會(huì)產(chǎn)生。

示例:

視圖:











本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號(hào)?注冊

x

本帖被以下淘專輯推薦:

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 分享淘帖1 訂閱訂閱

點(diǎn)擊這里給我發(fā)消息

2#
發(fā)表于 2015-3-30 15:02:33 | 只看該作者
坐等結(jié)果..{:soso_e113:}{:soso_e113:}{:soso_e113:}

點(diǎn)擊這里給我發(fā)消息

3#
發(fā)表于 2015-3-30 16:09:04 | 只看該作者
老漢,很會(huì)利用時(shí)事啊
4#
發(fā)表于 2015-3-30 16:24:54 | 只看該作者
動(dòng)畫詳細(xì)講述了msgbox的使用{:soso_e120:}
謝謝分享
5#
 樓主| 發(fā)表于 2015-3-30 16:30:25 | 只看該作者
風(fēng)中漫步 發(fā)表于 2015-3-30 16:24
動(dòng)畫詳細(xì)講述了msgbox的使用
謝謝分享

鬼打架的見仁見智。
6#
發(fā)表于 2015-3-31 11:20:07 | 只看該作者
todaynew 老師的寫作非常好!聯(lián)系實(shí)際聯(lián)系論壇內(nèi)容,真棒。!適合給我們菜鳥級做培訓(xùn)老師!
7#
發(fā)表于 2015-4-11 00:22:28 | 只看該作者
好好好好好好好好好好好好
8#
發(fā)表于 2015-7-20 14:26:11 | 只看該作者
學(xué)習(xí)學(xué)習(xí),謝謝分享!
9#
發(fā)表于 2015-7-20 14:26:27 | 只看該作者
學(xué)習(xí)學(xué)習(xí),謝謝分享!

點(diǎn)擊這里給我發(fā)消息

10#
發(fā)表于 2015-7-23 17:05:01 | 只看該作者
謝謝分享!
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

QQ|站長郵箱|小黑屋|手機(jī)版|Office中國/Access中國 ( 粵ICP備10043721號(hào)-1 )  

GMT+8, 2025-7-17 01:14 , Processed in 0.093382 second(s), 36 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表