做了一个自定义控件(用来替代commandbutton控件)。编译生成OCX文件之后,没有单击事件。
比如:在VB的设计阶段,将commandbutton控件拖到窗体上,双击commandbutton控件时,在代码编写窗口弹出commandbutton控件单击 代码段:
Private Sub Command1_Click()End Sub
双击自定义控件时弹出的是:
Private Sub MButton1_GotFocus()End Sub我希望弹出的是
Private Sub MButton1_Click()
能在此处编写自定义控件MButton1的单击事件代码
End Sub先在此感谢各位热心的网友。Thank you 

解决方案 »

  1.   

    控件中自定义事件:
    Public Event Click() 
    Private Sub UserControl_Click() 
        RaiseEvent Click 
    End Sub
    同样也还可以定义其它事件,让控件接收到的事件"透明"
    Public Event MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) 
    Private Sub UserControl_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) 
        RaiseEvent MouseMove(Button, Shift, x, y) 
    End Sub
      

  2.   

    Public Event YouEvent() 
      

  3.   


    “工具”菜单->“过程属性”->高级
    选择Click,然后选中“缺省用户界面”
      

  4.   

    好用啊!谢谢 怎么我添加的caption属性,
    我用labelbox作为控件界面,设计阶段caption的值能正确传入label控件,但是运行时label控件的caption值为空。
     各位帮我看下,有没有更好的解决办法。
      以下是我的代码,比较乱哈!比较烂哈!
    Public Event Click()
    Dim caption As String
    Private Sub label1_Click()
    UserControl_Click '单击label时,触发UserControl_Click'
    End Sub
    Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If X < Label1.Left + 100 Or X > Label1.Left + Label1.Width - 100 Or Y < Label1.Top + 100 Or Y > Label1.Top - 100 + Label1.Height Then
    Label1.BackColor = &HFFC0C0
    Else
    Label1.BackColor = &H8000000D
    Debug.Print X
    End If
    End SubPrivate Sub UserControl_Initialize()
    Label1.caption = caption
    End SubPrivate Sub UserControl_Resize() 'label随着UserControl大小的改变而改变
    With Label1
    .Left = UserControl.ScaleLeft
    .Top = UserControl.ScaleTop
    .Height = UserControl.ScaleHeight
    .Width = UserControl.ScaleWidth
    End With
    End Sub
    Public Property Get InText() As String
    caption = newval
    End Property
    Public Property Let InText(ByVal InputVal As String)
    InputVal = Chr(13) & InputVal
    caption = InputVal
    newval = InputVal
    Label1.caption = InputVal
    End Property
    Private Sub UserControl_ReadProperties(PropBag As PropertyBag) '将设置读取到属性窗口
    Me.InText = PropBag.ReadProperty("InText", InputVal)
    Label1.caption = InputVal
    End SubPrivate Sub UserControl_WriteProperties(PropBag As PropertyBag) '将设置保存到属性窗口
    PropBag.WriteProperty "InText", Me.InText, InputVal
    Label1.caption = InputVal
    End SubPrivate Sub UserControl_Click()
        RaiseEvent Click
    End Sub