设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 30452|回复: 200
打印 上一主题 下一主题

[模块/函数] 【原创 / 源码】Access控件事件配线架(EventsDistributionFrame) 发布贴(当前版

[复制链接]
跳转到指定楼层
#
发表于 2005-9-15 18:29:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
注意:请下载本贴中最后发布的版本

名称:EventsDistributionFrame

版本:V 1.0



简介

  在对窗体控件事件编程的时候,我经常为要写许多类似或相同的代码不停粘贴而感到头痛,记得以前公司综合布线的时候,把上百门电话和几百根网线插到配线架上,通过跳线进行集中管理,如果事件编程也能象配线架一样集中管理,那么我的编程将会轻松很多,代码也会更加容易维护,于是就有了写这个程序的初衷。

  本程序针对大量的窗体控件事件编程而设计,可以批量集中分类处理窗体/控件事件(例如一个控件的多个事件,或多个控件的同一事件),支持各种不同的事件分类方式,尤其适用于较复杂的界面事件编程。

  本程序从本人之前发布的EventsHub发展而来,最重大的改进即是支持了事件参数。使得编程人员已经可以完全抛弃传统的窗体事件编程方式。

  本程序面向熟练的Access VBA程序员,不适合新手使用。



使用说明

  程序源码中包含一个调用范例,以及各个函数的参数详细注释,这里仅对原理进行阐述:

1、首先必须在窗体代码中创建两个空的集合对象,如范例中的:

Dim edfCtls As New Collection

Dim edfPorts As New Collection

2、在Form_Load中进行事件定义和端口定义,如范例中的:

Public Sub Form_Load()

    edfInitEvents edfCtls, edfPorts, Me, 0, acComboBox, edfHookChildren

    edfInitEvents edfCtls, edfPorts, Me, 1, acTextBox, edfHookChildren

    edfInitEvents edfCtls, edfPorts, Me, 1, acListBox, edfHookChildren, "MyList"



    edfInitPorts edfPorts, AddressOf CustomFuncSample, 0

    edfInitPorts edfPorts, AddressOf CustomFuncSample2, 1

End Sub

  edfInitEvents函数对于事件进行定义,edfPorts函数对于端口进行定义,每个端口允许指定多组事件,但是只允许指定一个处理函数。具体的调用参数说明请查阅源码中的注释说明。



3、自定义事件处理函数,如范例中的:

Public Sub CustomFuncSample(ByRef acCtl As Control, ByRef strEvent As String, ByRef Params As Collection, ByRef reserved As Long)

    Dim i As Variant

    Debug.Print acCtl.ControlName & "_" & strEvent;

    For Each i In Params

        Debug.Print " " & i;

    Next i

    Debug.Print

End Sub

  自定义处理函数将被指定端口上发生的所有事件调用,每个端口通过edfInitPorts指定一个自定义处理函数。事件参数被包含在Params集合中,具体的参数说明请查阅源码中的注释说明。范例中的自定义处理函数功能为将事件描述输出到立即窗口。

4、本程序仅适用Access的19种标准控件(包括2种无事件控件)



程序下载:(OpenSource)

游客,如果您要查看本帖隐藏内容请回复




[此贴子已经被作者于2005-11-3 9:07:39编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
200#
发表于 2016-3-9 14:55:19 | 只看该作者
多谢分享
回复

使用道具 举报

199#
发表于 2016-3-9 14:28:47 | 只看该作者
学习了
回复

使用道具 举报

198#
发表于 2012-4-22 19:03:07 | 只看该作者
okkokook
197#
发表于 2012-1-18 08:26:40 | 只看该作者
谢谢分享
196#
发表于 2011-9-29 08:40:25 | 只看该作者
下来琢磨
195#
发表于 2011-9-29 07:45:56 | 只看该作者
参考一下,谢谢
194#
发表于 2011-5-23 21:36:16 | 只看该作者
mark
193#
发表于 2010-8-21 14:04:42 | 只看该作者
研究一下
192#
发表于 2010-8-19 11:18:16 | 只看该作者
本程序仅适用Access的19种标准控件
191#
发表于 2009-11-6 23:18:22 | 只看该作者
tks for sharing
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2025-2-22 17:20 , Processed in 0.089817 second(s), 37 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表