做了一个自定义控件(用来替代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
比如:在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
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
“工具”菜单->“过程属性”->高级
选择Click,然后选中“缺省用户界面”
我用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