Я пытаюсь создать динамический массив текстовых полей c для обработки любого количества данных, которые пользователь решает ввести. Проблема в том, что теперь мне нужны эти текстовые поля, чтобы иметь обработчик события _Change. Я читал, что вы можете определять элементы управления с событиями следующим образом:
Public WithEvents txt as MSForms.textbox
Но это не позволяет мне определять его как массив. Кто-нибудь знает, как это сделать? Вот мой код:
Public numacc As Integer
Dim NombreAcc() As MSForms.textbox
Dim k() As MSForms.textbox
Dim Cant() As MSForms.textbox
Private Sub CommandButton1_Click()
If numacc = 0 Then
DatosTuberia.Height = DatosTuberia.Height + 18
Errores.Top = Errores.Top + 18
LblNombre.Visible = True
LblK.Visible = True
LblCantidad.Visible = True
End If
DatosTuberia.Height = DatosTuberia.Height + 18
Errores.Top = Errores.Top + 18
ReDim Preserve NombreAcc(numacc), k(numacc), Cant(numacc)
Set NombreAcc(numacc) = DatosTuberia.Controls.Add("Forms.TextBox.1", "Nombre")
Set k(numacc) = DatosTuberia.Controls.Add("Forms.TextBox.1", "k")
Set Cant(numacc) = DatosTuberia.Controls.Add("Forms.TextBox.1", "Cantidad")
With NombreAcc(numacc)
.Top = 262 + numacc * 18
.Left = 14
.Width = 76
.Height = 18
.BorderStyle = fmBorderStyleSingle
.Font.Size = 12
End With
With k(numacc)
.Top = 262 + numacc * 18
.Left = 89.5
.Width = 76
.Height = 18
.BorderStyle = fmBorderStyleSingle
.Font.Size = 12
End With
With Cant(numacc)
.Top = 262 + numacc * 18
.Left = 164
.Width = 76
.Height = 18
.BorderStyle = fmBorderStyleSingle
.Font.Size = 12
End With
numacc = numacc + 1
End Sub