У меня на Форме программно создаются несколько Label'ов с данными с листа Экселя.
Private Sub UserForm_Activate()
SelPredpr = ActiveCell.Row
Dim i As Long
k = 0
For i = 1 To 25
If Worksheets("База").Cells(SelPredpr, i).Value = "" Then k = k + 1: j = i - k: GoTo 1
j = i - k
With Prosmotr.MultiPage1.Pages(0).Controls.Add("Forms.Label.1")
.Caption = Worksheets("База").Cells(1, i).Value
.Top = j * 14 - 8
.Left = 6
.Height = 12
.Width = 74
'.BorderStyle = 1
End With
With Prosmotr.MultiPage1.Pages(0).Controls.Add("Forms.Label.1")
.Caption = Worksheets("База").Cells(SelPredpr, i).Value
.Top = j * 14 - 8
.Left = 80
.Height = 12
.Width = 80
'.BorderStyle = 1
.AutoSize = True
.WordWrap = False
End With
1 Next i
Но мне нужно, чтобы, например, при двойном клике или одинарном клике на созданные Лейблы, копировалось их содержание, т.е. Caption.
Проблема в том, что я не знаю, как вызвать событие. Если бы Лейблы были созданы изначально на форме мной - нет проблем. А как быть, если Лейблы созданы программно?
Private Sub UserForm_Activate()
SelPredpr = ActiveCell.Row
Dim i As Long
k = 0
For i = 1 To 25
If Worksheets("База").Cells(SelPredpr, i).Value = "" Then k = k + 1: j = i - k: GoTo 1
j = i - k
With Prosmotr.MultiPage1.Pages(0).Controls.Add("Forms.Label.1")
.Caption = Worksheets("База").Cells(1, i).Value
.Top = j * 14 - 8
.Left = 6
.Height = 12
.Width = 74
'.BorderStyle = 1
End With
With Prosmotr.MultiPage1.Pages(0).Controls.Add("Forms.Label.1")
.Caption = Worksheets("База").Cells(SelPredpr, i).Value
.Top = j * 14 - 8
.Left = 80
.Height = 12
.Width = 80
'.BorderStyle = 1
.AutoSize = True
.WordWrap = False
End With
1 Next i
Но мне нужно, чтобы, например, при двойном клике или одинарном клике на созданные Лейблы, копировалось их содержание, т.е. Caption.
Проблема в том, что я не знаю, как вызвать событие. Если бы Лейблы были созданы изначально на форме мной - нет проблем. А как быть, если Лейблы созданы программно?