Events 在VB6中处理事件:初始化

Events 在VB6中处理事件:初始化,events,vb6,event-handling,initialization,Events,Vb6,Event Handling,Initialization,这是我的问题。我有VB6类头等舱。在SecondClass中,我创建了FirstClass的实例: WithEvents fClass as FirstClass ... Set fClass = New FirstClass 嗯。同样在SecondClass中,我有一个事件Initialize——这是FirstClass对象的某个事件(据我所知)。但当我在这个事件中粘贴断点时,它不会触发。因此,请您解释一下为什么我不能参加这次活动,以及VB6中的事件处理通常是如何工作的。 如果我的英语不

这是我的问题。我有VB6类
头等舱
。在
SecondClass
中,我创建了
FirstClass
的实例:

WithEvents fClass as FirstClass

...

Set fClass = New FirstClass
嗯。同样在
SecondClass
中,我有一个事件
Initialize
——这是
FirstClass
对象的某个事件(据我所知)。但当我在这个事件中粘贴断点时,它不会触发。因此,请您解释一下为什么我不能参加这次活动,以及VB6中的事件处理通常是如何工作的。
如果我的英语不好理解我的想法,请提问

更新:

这是头等舱的财产:

私有财产出租IRPCAppMode_应用程序(RHS作为对象)

我知道mApp对象仅在这行代码中设置,仅此而已。我不明白的是初始化事件是如何在第二个类中出现的,以及我们如何在类之外设置私有属性。在SecondClass中调用Initialize:

Private Sub m_objTestMode_Initialize()
    Const METHOD_NAME As String = "m_objTestMode_Initialize" 'DO NOT TRANSLATE
    On Error GoTo ErrorHandler
    Dim lLoop As Long
    Set mRPCProject = m_objTestMode.Project
    SetupAutoSaveTimer
    SSTab1.Tab = 0
    SSTab2.Tab = 0
    Set m_objToolManager = m_objTestMode.mApp.ToolManager
    Set g_objMonDrives = New clsMonDrives
    Set g_objTrendMonDrives = New clsTrendDrives

..

初始化事件已经存在于您的类中,因此如果您尝试创建自己的初始化事件,它将被忽略。只需将代码(去掉所有自定义事件代码)放入现有的初始化事件中,就可以了


每当创建类的新实例时,都会触发Initialize事件。因此,如果使用SecondClass创建FirstClass的实例,则需要将Initialize事件放入FirstClass中。这样,当您创建FirstClass实例时,它将被触发。所以不,SecondClass的Class_Initialize事件不是FirstClass的事件,而是SecondClass的事件

您能添加更多的代码吗?特别是您必须处理事件的方法吗?本文对VB6事件系统进行了很好的描述:您知道,这对我来说很难),但我尝试解释一下。FirstClass有一个私有属性让IRPCAppMode_应用程序(RHS作为对象)。在这个属性中,我有一行“RaiseEvent Initialize”。所以我猜,如果我在SecondClass中创建了FirstClass的实例,并且在SecondClass中有一个Initialize的处理程序,它会触发吗?我说得对吗?应该这样,这取决于你的代码没有任何问题。发布引发事件的代码位,以及处理事件的方法。这里需要注意的一点是,VB中的所有类上都有一个名为Initialize的系统事件,因此可能会将该事件处理程序与试图捕获的事件处理程序混淆。您应该关注的方法是fClass_Initialize。尝试在那里设置一个断点,然后运行(F5)并查看是否得到一个事件。
Private Sub m_objTestMode_Initialize()
    Const METHOD_NAME As String = "m_objTestMode_Initialize" 'DO NOT TRANSLATE
    On Error GoTo ErrorHandler
    Dim lLoop As Long
    Set mRPCProject = m_objTestMode.Project
    SetupAutoSaveTimer
    SSTab1.Tab = 0
    SSTab2.Tab = 0
    Set m_objToolManager = m_objTestMode.mApp.ToolManager
    Set g_objMonDrives = New clsMonDrives
    Set g_objTrendMonDrives = New clsTrendDrives