首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

动态添加用户表单textbox控件_click事件不触发?(但_change可以工作) (VBA)

在VBA中,动态添加用户表单textbox控件的click事件不触发,但change事件可以工作的原因可能是因为click事件需要在控件被激活(即获得焦点)后才能触发,而动态添加的控件可能没有正确地获得焦点。为了解决这个问题,可以尝试以下方法:

  1. 使用Activate方法手动激活控件:在动态添加控件后,使用textbox控件的Activate方法来手动激活该控件,以确保click事件可以触发。示例代码如下:
代码语言:vba
复制
Private Sub AddTextBox_Click()
    Dim newTextBox As Object
    Set newTextBox = Me.Controls.Add("Forms.TextBox.1")
    newTextBox.Name = "DynamicTextBox"
    newTextBox.Left = 100
    newTextBox.Top = 100
    newTextBox.Width = 100
    newTextBox.Height = 20
    newTextBox.Activate ' 手动激活控件
End Sub

Private Sub DynamicTextBox_Click()
    MsgBox "Click event triggered!"
End Sub
  1. 使用MouseDown事件替代Click事件:如果手动激活控件仍然无法触发click事件,可以尝试使用MouseDown事件来替代。MouseDown事件在鼠标按下时触发,可以达到类似click事件的效果。示例代码如下:
代码语言:vba
复制
Private Sub AddTextBox_Click()
    Dim newTextBox As Object
    Set newTextBox = Me.Controls.Add("Forms.TextBox.1")
    newTextBox.Name = "DynamicTextBox"
    newTextBox.Left = 100
    newTextBox.Top = 100
    newTextBox.Width = 100
    newTextBox.Height = 20
    AddHandler newTextBox.MouseDown, AddressOf DynamicTextBox_Click ' 添加MouseDown事件处理程序
End Sub

Private Sub DynamicTextBox_Click()
    MsgBox "Click event triggered!"
End Sub

以上是解决动态添加用户表单textbox控件click事件不触发的两种方法。根据具体情况选择适合的方法即可。

关于VBA和用户表单控件的更多信息,您可以参考腾讯云的VBA开发文档和用户表单控件文档:

请注意,以上链接为腾讯云相关产品和文档,仅供参考。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券