Hola a todos;
Mi problema y lo que quiero conseguir es lo siguiente:
Quiero agregar dinamicamente controles a un formlario, es decir, tengo una tabla sql con los controles que se encuentran en cada formulario, tipo, posicion, tamaño, nombre etc.. en tiempo de ejecución saco la info de la tabla y voy creando y agregando los controles en el formulario.
Para tener cada control indentificado he creado un campo que es Id_Control, así queda indentificado cada control, porque pertenece al form x y el control es Y (x,y)
Para esto se me ha ocurrido crear una clase MyControles que hereda de Control, esta clase tiene la propiedad Id_Control (entre otras) y además tiene otra propiedad Control_base que un control.
Es la unica forma que se me ha ocurrido para despues poder mostrar el control en el formulario con:
Contructor de mi clase MyControles:
Public Sub New(ByVal pCod As String)
Select Case pCod
Case "1"
Control_Base = New Button
Case "2"
Control_Base = New TextEdit
Case "3"
Control_Base = New LabelControl
Case "4"
Control_Base = New GridControl
Case "5"
Control_Base = New ComboBoxEdit
Case "6"
Control_Base = New CheckEdit
End Select
End Sub
y despues en el form utilizo esto:
Dim ctrl As New MyControles(pCod.Trim)
With ctrl
.Id = pIdControl
.Name = pIdControl
.Parent = Me
.Control_Base.Parent = Me
.......
.....
End With
pongo el ctrl como hijo del form
y tambien el ctrl.Control_Base como hijo del form porque si no lo hago así no se me muestra en el formulario, el Control_Base queda como "oculto".
Esta solución no me sirve para depues identificar el control acutual que esta seleccionado, porque suspuestamente el usuario pincha o seleccions Control_Base, pero en realidad lo que quiero obtener es el ctrl que lo contiene
¿Hay alguna forma de mejorar esto?