自己学做.ocx控件按钮,可为什么不响应mousedown\up\move事件?
Event MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) 'MappingInfo=UserControl,UserControl,-1,MouseDown
Event MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) 'MappingInfo=UserControl,UserControl,-1,MouseMove
Event MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) 'MappingInfo=UserControl,UserControl,-1,MouseUp
.......
Private Sub UserControl_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    RaiseEvent MouseDown(Button, Shift, X, Y)
    
End SubPrivate Sub UserControl_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    RaiseEvent MouseMove(Button, Shift, X, Y)
End SubPrivate Sub UserControl_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    RaiseEvent MouseUp(Button, Shift, X, Y)
End Sub
....
是不是缺少点什么,导致编译后的ocx不响应以上事件?请高手赐教!

解决方案 »

  1.   

    Event 前面加上 Public 即可.
      

  2.   

    我是用vb外接程序管理器中的active控件接口向导、利用shape和label控件合在一起做的控件。
    刚才试了下,没成功!
      

  3.   


    不可能,你没有整对.要这样:'通用部份Public Event MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)......'过程部份
    Private Sub UserControl_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) 
        RaiseEvent MouseDown(Button, Shift, X, Y)    
    End Sub ......你在VB工程中添加这个用户控件,再测试一下.
      

  4.   

    我又发现一问题:mouse事件对shape控件起作用了;当鼠标点击到label控件上mouse事件不起作用,
    可这个label控件是在shape控件中间区域,这如何是好?(在事件映射的时候,我选择的是整个控件UserControl,而不是一个shape控件)恳请东方老师指一下,谢谢!