我最近确实有一个项目,我需要做类似的事情。我创建了一个名为 clsTrace 的类
Option Explicit
Private m_RoutineName As String
Public Sub StartTrace(RoutineName As String)
m_RoutineName = RoutineName
TraceIndent = TraceIndent + 1
Call writeout("Start " & RoutineName)
End Sub
Private Sub EndTrace(s As String)
Call writeout("End " & m_RoutineName)
TraceIndent = TraceIndent - 1
End Sub
Private Sub Class_Terminate()
Call EndTrace(m_RoutineName)
End Sub
Private Sub writeout(sMessage As String)
'write to database, file, screen, etc
End Sub
添加了一个名为的全局变量TraceIndent
然后我编写了一个小程序来查看frm、bas、cls 文件并找到函数和子defs(例如Public Sub Private Function Friend Function 等)以及defs 的名称。在 def 之后,我插入了Dim cTrace as new clsTrace: cTrace.StartTrace(NameOfSourceFile.NameOfFunction)
.
因为一个类在退出子\函数时被销毁,class_terminate 将在退出时自动调用。如果操作正确,这将生成函数\subs 的每个进入和退出的缩进日志文件。
您应该能够使用输出来确定单击按钮的次数或打开表单的次数(查找“Start frmName.buttonName_Click”条目)。