Abrir formularios dinámicamente

30/03/2005 - 09:29 por Lucía | Informe spam
Hola,

Necesito crear una función que me permita abrir formularios de forma
dinámica, es decir pasándole un parámetro tipo string que contiene el nombre
del formulario (cada vez uno) Debería quedar de esta forma (pero en VB.NET)

Sub ver Formulario (f as string)
Dim Form1 as form
Form1 = Forms.Add(f)
Form1.Show( )
End Sub

Este código me funciona en VB6 ¿Qué debo cambiar para que me funcione en
VB.NET?

Gracias
 

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
30/03/2005 - 15:46 | Informe spam
Utiliza Activator.CreateInstance para crear objetos a partir del tipo o
nombre de la clase. Por ejemplo:

Public Sub VerFormulario(ByVal t As Type)

Dim f As Form

f = DirectCast(Activator.CreateInstance(t), Form)
f.Show()

End Sub

Y lo llamarias asi:

VerFormulario(GetType(Form1))
VerFormulario(Type.GetType("MiNamespace.Form1"))

Tambien puedes optar por usar la sobrecarga de CreateInstance que toma
String:

Public Sub VerFormulario(ByVal formulario As String)

Dim f As Form

f = DirectCast(Activator.CreateInstance(Nothing, formulario).Unwrap,
Form)
f.Show()

End Sub

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
https://mvp.support.microsoft.com/p...4EF5A4191C

Preguntas similares