Cita:
Iniciado por Hypnoss
Estoy desarrollando una aplicación en Visual Basic 2008 y en un formulario tengo una fila de Labels y textbox que registran datos, en uno de esos textbox se elmacena el nombre del formulario mediante el cual se llenaron esos datos.
Hay alguna manera de instanciar a un objeto form el nombre que se almaceno en el textbox y de esta manera mandar llamar a ese formulario??
es decir en el textbox tengo almacenafo frmFormulario1
entonces que en codigo pueda hacer
dim frmNuevoForm as Form
frmNuevoForm = New textbox.text (frmFormulario1)
y de esta manera poder abrir el formulario, quiero ver si se puede para evitar usar un Select Case y ahorrarme unas lineas.
Se me ocurrió esto:
Código Vb.Net:
Ver original'Para Instanciar un formulario harías esto, simulando un constructor
Dim miFormulario As Form1 = instanciaForm("Form1")
miFormulario.Show()
...
y esta sería la función que simularía el contructor, haciendo el trabajo de selección y devolviendo memoria para el formulario correspondiente.
Código Vb.Net:
Ver originalFunction instanciaForm(ByVal strNombreFOrm As String) As Form
Dim f As Form
Select Case strNombreFOrm
Case "Form1"
f = New Form1
Return f
Case "Form2"
f = New Form2
Return f
Case "Form3"
f = New Form3
Return f
Case Else
Return Nothing
End Select
End Function
Tal vez se pueda hacer algo más propio y sofisticado implementando alguna clase que herede de la clase FORM, pero no se me da ahora la idea y creo que esto te puede sacar del apuro.
Saludos