设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[模块/函数] 理解窗體事件的觸發順序

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2006-7-9 22:57:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
不記得哪里的例子了. 可測試事件發生的先后,對理解事件觸發挺有好處
可將Me改為 forms("你的窗體名") 測試任何窗體

    Function setEvent()
        Dim p As Property
        For Each p In Me.Properties
            If Left(p.Name, 2) = "On" _
             Or Left(p.Name, 5) = "After" _
             Or Left(p.Name, 6) = "Before" Then
                p.Value = "=msgbox('" & p.Name & "')"
            End If
        Next p
    End Function


    Function resumeEvent()
        Dim p As Property
        For Each p In Me.Properties
            If Left(p.Name, 2) = "On" _
             Or Left(p.Name, 5) = "After" _
             Or Left(p.Name, 6) = "Before" Then
                p.Value = ""
            End If
        Next p
    End Function
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-7-9 23:03:00 | 只看该作者
一目了然
3#
发表于 2006-7-13 16:56:00 | 只看该作者
可以试下EDF,示例程序中就有这个,通过Debug打印,包含所有事件参数。

点击这里给我发消息

4#
发表于 2007-2-4 01:13:00 | 只看该作者
最怕遇到MouseMove事件。

修改一下:

Function setEvent(ByRef frm As Form) As Integer
    On Error Resume Next
    Dim p As Property
    For Each p In frm.Properties
        If Left(p.Name, 2) = "On" _
         Or Left(p.Name, 5) = "After" _
         Or Left(p.Name, 6) = "Before" Then
            p.Value = "=msgbox('" & p.Name & "')"
        End If
    Next p
End Function
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-30 11:41 , Processed in 0.093408 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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