Подтвердить что ты не робот

Динамическое добавление меток в пользовательскую форму = пустой пользовательский формат

Я пытаюсь динамически добавлять кнопки в пользовательскую форму, но пользовательская форма просто пустая. Ive упростило сущность кода как можно больше для проверки ошибок (не то, чтобы это помогло мне)

Sub addLabel()
UserForm2.Show    
Dim theLabel As Label
Dim labelCounter As Integer

For labelCounter = 1 To 3
    Set Label = UserForm2.Controls.Add("Forms.Label.1", "Test" & labelCounter, True)
    With theLabel
        .Caption = "Test" & labelCounter
        .Left = 10
        .Width = 50
        .Top = 10
    End With
End Sub

Есть ли способ проверить, были ли кнопки добавлены, но невидимы? Или почему они не добавляются. Любая помощь была высоко оценена.

4b9b3361

Ответ 1

Несколько вещей:

  • Вам нужно показать свой UserForm как vbModeless - иначе код останавливается на UserForm2.Show
  • Вы создаете объект с именем Label, а затем With на theLabel
  • Затем вам нужно увеличить позицию трех ярлыков, чтобы избежать перекрытия (что я сделал с помощью Top).

    Sub addLabel()
    UserForm2.Show vbModeless
    Dim theLabel As Object
    Dim labelCounter As Long
    
    For labelCounter = 1 To 3
        Set theLabel = UserForm2.Controls.Add("Forms.Label.1", "Test" & labelCounter, True)
        With theLabel
            .Caption = "Test" & labelCounter
            .Left = 10
            .Width = 50
            .Top = 10 * labelCounter
        End With
    Next
    End Sub
    

Ответ 2

попробуйте под кодом

Set theLabel = UserForm2.Designer.Controls.Add("Forms.Label.1", "Test1", True)