目的是每隔4秒检测一次文件test.txt是否存在,组件中的代码如下: 
在组件中添加一个Timer1和一个form1: 
'in mouble 
Public aFileName As String 
Public Event FileFound() 
Private Sub Class_Initialize() 
form1.Timer1.Enabled = False 
End Sub 
Public Sub MonitorFile(ByVal vFileName As String) 
aFileName = vFileName 
form1.Timer1.Interval = 4000 
form1.Timer1.Enabled = True 
End Sub 
'in form 
Private Sub Timer1_Timer() 
If Dir("e:\test.txt") <> "" Then 
RaiseEvent FileFound '这里是出错的地方,代码停留在这里 
End Sub 再编写一个EXE调试之: 
Dim WithEvents MyCom As Class1 
Private Sub Command1_Click() 
Set MyCom = New Class1 
MyCom.MonitorFile ("C:\test.txt") 
End Sub Private Sub Form_Unload(Cancel As Integer) 
Set MyCom = Nothing 
End Sub Private Sub MyCom_FileFound() 
MsgBox "Found:" & vFileName 
End Sub 结果产生错误,提示的结果是"事件未找到" 
这只是事件的一个基础问题,并没有什么难度,关键是上一节没听明白,才有此一问.. 
那么,我的程序错误的地方在哪里呢?请赐教

解决方案 »

  1.   

    RaiseEvent FileFound
    这句话应该在类模块调用吧?在Form1调用似乎不对
      

  2.   

    事件源跟事件接受者都应该是对象,所以处理事件的代码只能位于类中,如类模块、窗体等等。
    http://pages.cpsc.ucalgary.ca/~saul/vb_examples/tutorial10/activex01.html
    这个教程挺好的,希望有帮助
      

  3.   

    这个,,clear_zero(clear_zero) 兄,那个是控件的教程..
    不过我也正在找控件的教程,谢谢了
      

  4.   

    又见“clear_zero(clear_zero) 兄” !
         ---------------------------
    “为什么总是有人犯这个错误?”
    ^_^