CONTROLES

¶mmm
25 de Agosto del 2004
HABER SI SABEN ESTA; COMO CREO UN CONTROL EN TIEMPO DE EJECUCION?
TENGO UNA SOLUCION PERO TIENE UN PROBLEMA, PUBLIQUEN RESPUESTAS Y A FINAL DE MES PONDRE LA MIA.

Bartolom
25 de Agosto del 2004
Puedes utilizar una colección de controles y el método Add. en un form coloca un Command1 y un TextBox1. Luego el código es:

Option Explicit
Private CajaTexto() As TextBox
Private CantCajaTextos As Long

Private Sub Command1_Click()
CantCajaTextos = CantCajaTextos + 1
ReDim Preserve CajaTexto(CantCajaTextos)
Set CajaTexto(CantCajaTextos) = Controls.Add("VB.TextBox", "CajaTexto" & CStr(CantCajaTextos))
With CajaTexto(CantCajaTextos)
.Visible = True
.Top = Text1.Top + (360 * CantCajaTextos)
.Left = Text1.Left
.Text = .Name
.Height = 315
End With

End Sub

Private Sub Form_Load()
CantCajaTextos = 1
End Sub

mvallejos
25 de Agosto del 2004
Hay otra manera, pero, necesitarás un elemento inicial
del objeto a replicar con Index = 0. Supongamos que tenemos como elemento incial un textbox llamado Text1 con Index = 0

Prueba esto

Dim i as Integer

For i = 1 To 5
Load Text1(i)
Text1(i).top = text1(i-1).top + text1(i-1).Height + 60
Text1(i).text = ""
Text1(i).Visible = True
Next i

Esto te tiene que generar 5 réplicas de la caja de texto.
En los eventos de Text1, identificas con el parámetro Index el objeto que está disparando dicho evento.

Espero que te sirva