Lo unico que tiene que tener es un array de labels, inicialmente comienzo con uno solo, Label1(0), y despues los voy cargando dinamicamente con Load Label1(x), etc, etc, etc.
El problema esta en como trabajar con cada label individualmente.
Por ej: En un formulario pongo este ActiveX llamado ALabels.
y puedo hacer lo siguiente. ALabels.Add "NewLabel" y despues hacer, ALabels.Label(0).Caption = "1", ALabels.Label(1).Caption = "1",etc.
codigo de ejemplo:
Código:
'En un formulario con un label (Label1)
Dim Etiqueta(1) As VB.Label
Private Sub Form_Load()
Set Etiqueta(0) = Label1(0)
Etiqueta(0).Caption = "Label 1"
Load Label1(1)
Set Etiqueta(1) = Label1(1)
Etiqueta(1).Caption = "Label 1"
End Sub
Etiqueta(1) del ActiveX o sea: UserControl.Etiqueta(1).Caption. De echo esa instancia ni existe, lo cual esta bien porque esta declarada como Dim = Private, esa instancia es solamente vista por el activeX. Entonces lo que hice fue ponerla publica, pero ahi es donde falla. En cambio si no la pongo como un vector si que funciona.
En fin resumiendo: En un activeX tengo un arrays de labels. ¿como puedo hacer para poder manejarlos desde un formulario?
Código:
'Formulario
Private Sub Form_Load()
UserControl.Label1(0).Caption = "Label 1"
UserControl.Label1(1).Caption = "Label 2"
UserControl.Label1(2).Caption = "Label 3"
End Sub
'ActiveX
Private Sub UserControl_Initialize()
Load Label1(0)
Load Label1(1)
Load Label1(2)
End Sub