dynamic添加的userform文本框控件_click事件不会触发? (但是_change工作)(VBA)

所以我试图让_click事件在一个用户窗体上dynamic添加的文本框控件上工作。

这里是我的代码,它获取_change事件就好了,但_click事件不会触发。

' Userform code Dim myControlsEventH As Collection Private Sub UserForm_Initialize() Set myControlsEventH = New Collection End Sub Public Sub AddTextbox(myName As String) 'Dim MyTextBox As Object Dim myTextbox As MSForms.TextBox Set myTextbox = frmStamps.Controls.Add("Forms.TextBox.1", myName, True) myTextbox.TextAlign = 2 myTextbox.Font.Size = 18 myTextbox.WordWrap = False 'MyTextBox.AutoSize = True AdjustSize Dim txtbxEvent As ctxtbxEventH Set txtbxEvent = New ctxtbxEventH Set txtbxEvent.frm = frmStamps Set txtbxEvent.txtbox = myTextbox myControlsEventH.Add txtbxEvent End Sub ' ctxtbxEventH Class code Public WithEvents txtbox As MSForms.TextBox Public frm As UserForm Private Sub txtbox_Click() Debug.Print "clicked" End Sub Private Sub txtbox_Change() Debug.Print "changed" End Sub 

(BONUS问题(我在哪里可以find每个MSForms控件的所有可能事件的列表?))

一个MSForms.TextBox没有一个Click事件。 但是一个MouseUP事件是可用的。

 Private Sub txtbox_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) Debug.Print "mouse up" End Sub 

在“对象”导航框中设置所需的对象后,可以使用VBA编辑器的“声明/过程”导航框中的列表来获取可能的事件列表:

在这里输入图像说明