设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[模块/函数] 类模块实现多个按钮同一命令的疑问

[复制链接]
跳转到指定楼层
1#
发表于 2016-4-21 22:09:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
类模块clsJobButton的代码:
Public WithEvents cmdJob As CommandButton

Private Sub cmdJob_Click()
    MsgBox "类模块"
End Sub

窗体有三个按钮cmdJob1~3,代码为:

Dim U(1 To 3) As New clsJobButton
Private Sub Form_Load()
    Dim i As Long
    Set U(1).cmdJob = Me.cmdJob1
    Set U(2).cmdJob = Me.cmdJob2
    Set U(3).cmdJob = Me.cmdjob3
End Sub
Private Sub cmdJob2_Click()

End Sub
Private Sub cmdjob3_Click()

End Sub


疑问:
按cmdJob1按钮不能触发类模块的msgbox“类模块”信息, 但cmdJob2和3按钮都可以。 我 猜测是不是窗体中还是要写上三个按钮的Click事件过程才能触发类模块函数? 不然为何按钮2和3都正常(即使Click事件为空),而按钮1(没有写任何Click事件代码)却没有作用。

请指教!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2016-4-21 22:10:53 | 只看该作者
总感觉我猜测的是错误的!
3#
发表于 2016-4-22 02:56:52 | 只看该作者
打个不太恰当的比方,我们把类模块看做一个炸药,
定义变量,表示买了三个炸药
窗体的加载事件表示,把这三个炸药埋在了三个地方,例如,公司,楼下,公交站旁。
控件的单击事件,就好比点燃引线。至于爆不爆,得看炸药到底有没有火药了(控件的私有化事件)。

现在总结下:
炸药是需要点火的,不点火是不会爆的。因此加载事件,实际上只是初始化类模块,如果没有控件的引发事件(点火),它永远都是哑炮。
4#
发表于 2016-4-22 14:13:02 | 只看该作者
roych 发表于 2016-4-22 02:56
打个不太恰当的比方,我们把类模块看做一个炸药,
定义变量,表示买了三个炸药
窗体的加载事件表示,把这 ...

潜意识中有暴恐倾向啊,公司\公交站都是人口密集场所.装置的工作程序也非常了解,你是....
5#
 楼主| 发表于 2016-4-22 16:06:50 | 只看该作者
roych 发表于 2016-4-22 02:56
打个不太恰当的比方,我们把类模块看做一个炸药,
定义变量,表示买了三个炸药
窗体的加载事件表示,把这 ...

好吧, 虽然比喻比较暴力,
但是还是解释的很清楚的!

点击这里给我发消息

6#
发表于 2016-4-23 08:23:44 | 只看该作者
roych 发表于 2016-4-22 02:56
打个不太恰当的比方,我们把类模块看做一个炸药,
定义变量,表示买了三个炸药
窗体的加载事件表示,把这 ...

这个比喻有些形象
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-10 18:49 , Processed in 0.133367 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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