如何为所有窗体的文本框定义多个公共事件?
时 间:2012-05-18 08:51:28
作 者:蒋灿辉 ID:24104 城市:上海
摘 要:需要为所有的窗体的所有的文本框的获得焦点事件定义2个以上的公共方法,但是我不想一个一个去定义,该如何操作?有没有一次性就可以全部定义的方法?
正 文:
需要为所有的窗体的所有的文本框的获得焦点事件定义2个以上的公共方法,但是我不想一个一个去定义,该如何操作?有没有一次性就可以全部定义的方法? |
方法有很多,最简单的就是直接用Controls循环得到窗体的所有控件并定义文本框的 OnGotFocus="过程名"。但是这样只能定义一个方法,而且传参比较麻烦,不能按地址传对象。
另一个方法就是用 WithEvents 来委托控件的事件,但是ACCESS的form和control比较特别,需要额外设定 On....="[Event Procedure]" 否则这个事件是不会被触发的。 |
基本操作方法如下:
1、写一个公共的类模块,类模块公共部分 public withevents t as treeview
类里面写 on....方法
2、在需要调用这个类的窗体的公共部分 dim c(11) as new clsComm
3、在这个窗体的 form_load 用controls列举出需要委托事件的控件,放入这个类,也就是
dim i as long
for each ctl in me.controls
i=i+1
set c(i).t = ctl
next
图片如下:
图片如下:
实际代码如下:
类模块 clsComm
Option Compare Database Public WithEvents t As Access.TextBox Public WithEvents t2 As Access.TextBox
Private Sub t2_GotFocus() |
窗体2
Option Compare Database Dim c(11) As clsComm
Private Sub Command0_Click() Private Function IsFormLoad(ByVal formName As String) As Boolean End Function Private Sub Command1_Click() Private Sub Command2_Click() |
Access2010 示例下载:

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)

学习心得
最新文章
- 32位的Access软件转化为64...(04.12)
- 【Access高效办公】如何让vb...(04.11)
- 仓库管理实战课程(10)-入库功能...(04.08)
- Access快速开发平台--Fun...(04.07)
- 仓库管理实战课程(9)-开发往来单...(04.02)
- 仓库管理实战课程(8)-商品信息功...(04.01)
- 仓库管理实战课程(7)-链接表(03.31)
- 仓库管理实战课程(6)-创建查询(03.29)
- 仓库管理实战课程(5)-字段属性(03.27)
- 设备装配出入库管理系统;基于Acc...(03.24)