我使用vb6英文版,我感觉好像和我修改了我封装的控件的接口(事件)有关。快帮帮我吧。我都快被气死了……

解决方案 »

  1.   

    你放几个msgbox进取不兼容生成,然后考到相应路径下,注册,然后建议一个新工程,添加你刚刚生成的类,看看
      

  2.   

    也试过了。
    我放几个msgbox到控件里,产生事件的前后,还有事件处理过程里面,结果调试状态下正常,依次出现,功能好用。编译之后,只出现事件发生前的msgbox,然后便非法操作了。谢谢大家的提醒,等解决了问题我再结分。继续等待最佳答案。
      

  3.   

    现在不需要和原来控件保持兼容,只需要控件事件能正常工作就行了。DLL工程中:自定义控件中的相关代码:
    事件定义代码:
    现在定义为:(为避免兼容性问题,我增加了一个事件,实际上一个就够了)
    Public Event RunAct(ByRef Cancel As Boolean)
    Public Event HYAct(ByRef Cancel As Boolean)
    原来定义为:
    Public Event RunAct(ByRef Cancel As Boolean)引发事件的相关代码:
    Private Sub txtInput_DblClick()
        If TableName <> "" And grd.TextMatrix(9, Col) <> "" Then
            Dim strCode As String, strName As String, strDate As String, strDate2 As String, Record As ListItem
            Select Case UCase(Trim(grd.TextMatrix(9, Col)))
            Case "DATE"
                If GetDate(strDate) Then txtInput.Text = strDate
            Case Else
                Dim Cancel As Boolean
                'MsgBox "txtInput_DblClick      Before    RaiseEvent RunAct(Cancel)"
                RaiseEvent HYAct(Cancel)
                'MsgBox "txtInput_DblClick      After    RaiseEvent RunAct(Cancel)"
                'DoEvents
                If Not Cancel Then
                   '一些默认处理代码
                End If
            End Select
        End If
    End SubExe工程中某窗体:引用控件的事件代码:
    Private Sub grd_HYAct(Index As Integer, Cancel As Boolean)
        MsgBox "grd_RunAct" & Index
    End Sub我把代码贴出来了,请各位高手帮忙看看,万分感激!