Как динамически позиционировать текстовые поля один под другим в VBA - PullRequest
0 голосов
/ 25 октября 2018

Я работаю над пользовательской формой, в которую я хочу добавлять текстовые поля каждый раз, когда я нажимаю кнопку command.Приведенный ниже код делает это:

Private Sub CommandButton1_Click()
    Dim editBox As Control   
    Set editBox = UserForm1.Controls.Add("Forms.TextBox.1")
End Sub

Однако я думаю, что я добавляю только одно текстовое поле при нажатии, я прав?Если так, есть ли способ добавить столько текстовых полей, сколько я нажимаю на commandButton?

Также моя большая проблема заключается в том, чтобы расположить каждый текстовый блок, добавленный ниже друг друга, как в столбце.Есть ли способ сделать это?
Или вы предлагаете мне изменить способ добавления текстовых полей?

Спасибо

1 Ответ

0 голосов
/ 25 октября 2018

Упорядочить текстовые поля, созданные на лету

Каждый щелчок создает новый текстовый ящик без назначения (изменения) значения для свойства .Top, которое они перекрывали.Без имени вы не сможете ссылаться на них позже.

Private Sub CommandButton2_Click()
    Static i
    Dim editBox As MSForms.Control
    Set editBox = Me.Controls.Add("Forms.TextBox.1")
    i = i + 1
    editBox.Name = "myBox" & i
    editBox.Top = i * editBox.Height
End Sub
...