本帖最后由 bcrun 于 2011-10-20 11:59:58 编辑

解决方案 »

  1.   

    事件没有触发,
    注意:List2_ItemCheck应该是在设置项目打钩时触发,不知道,你是否设置显示打钩
    你是否使用错了事件:List2_ItemClick?
      

  2.   

    设置了,没问题的.这个控件是在DLL里面操作OCX哦,不是EXE
      

  3.   


    我肯定是你的事件没有触发!
    你在以下代码中设置断点,看能不能运行中断:
    Public Sub List2_ItemCheck(Item As Integer) '触发点击事件,返回当前选中项的值
      RaiseEvent BkMkSelect'设置断点,如果事件有触发,当你设置项目打钩,则运行到该处,应该进入调试状态
    End Sub
      

  4.   

    如果能,那么,你的
    Public WithEvents BkMkselect As WdCtl.WdOcx
    中的
    BkMkselect 没有创建对象,肯定是nothing
      

  5.   

    是的DLL调用OCX的代码如下:
    引用OCX后,在类模块里面调用.
    Public WithEvents BkMkselect As new WdCtl.WdOcx
      

  6.   


     ...New创建一个新的实例化对象,但是对OCX不行.
      

  7.   

    ocx是控件吧....控件就有实例的吧.在dll里面定义了控件,却没有实例..Public WithEvents BkMkselect As WdCtl.WdOcx,没有new啊同时控件显示在什么地方?控件都没有显示,控件里面的子控件怎么触发事件,没法点击呀
    Public Sub List2_ItemCheck(Item As Integer)  '触发点击事件,返回当前选中项的值要不你直接在控件里面指定个timer,到时间了RaiseEvent BkMkSelect下看看...
      

  8.   

    看你代码,这OCX是有界面的.那么这个OCX在DLL中使用,是否DLL中也封装了一个窗体?如果是,那么就应该在窗体中使用这些,不然控件可能不能工作.我还不明白控件的工作机制,但应该也是要基于一个公共的载体的,比如窗体和网页.你直接这样子虽然可声明,但那个对象本身无法被实例化,无语法错误,却无法工作.