Ejecutar código recogido de una tabla

20/01/2006 - 10:19 por Adria Grau Rovira | Informe spam
Buenos dias, en mi programa tengo una tabla la cual contiene una celda con el
nombre de un formulario. Desearia saber si existe la posibilidad de que ese
nombre de formulario lo pueda ejecutar, de tal forma que cuando lea la tabla
y recoja el valor "frmInicio" se ejecute ese formulario y lo vea, sin
necesidad de crear un SELECT CASE para cada formulario, asi lo que consigo es
que si quiero cambiar el formulario solo tengo que ir a la tabla y cambiar el
nombre.

¿Alguna idea???

Gracias

Preguntas similare

Leer las respuestas

#1 Jesús López
20/01/2006 - 15:45 | Informe spam
Se puede hacer por medio de Reflection:

Sub EjecutarFormulario( NombreFormulario As String )
Dim frm As Form =
Activator.CreateInstance(Type.GetType(NombreFormulario))
frm.Show()
End Sub

El nombre del formulario debe incluir el espacio de nombres y a veces
también el ensablamdo donde está definido.

Saludos:

Jesús López
MVP
Respuesta Responder a este mensaje
#2 Adria Grau Rovira
20/01/2006 - 16:56 | Informe spam
Gracias, pero no me podrias dar algo más de info??, he estado buscando y no
encuentro mucho sobre el tema, o no lo llego e entender.
Que se supone que debo poner donde has escrito "NombreFormulario" ?? o
podria poner "textbox1.text" ???

Gracias

"Jesús López" escribió:

Se puede hacer por medio de Reflection:

Sub EjecutarFormulario( NombreFormulario As String )
Dim frm As Form =
Activator.CreateInstance(Type.GetType(NombreFormulario))
frm.Show()
End Sub

El nombre del formulario debe incluir el espacio de nombres y a veces
también el ensablamdo donde está definido.

Saludos:

Jesús López
MVP



Respuesta Responder a este mensaje
#3 Jesús López
20/01/2006 - 18:07 | Informe spam
El nombre del formulario incluyendo el espacio de nombres. Por ejemplo:

EjecutarFormulario ("MiApplicationWindows.MiFormulario")

Alguien podría escribir en una caja de texto eso mismo y entonces podríamos
hacer:

EjecutarFormulario( MiCajaDeTexto.Text )

Pero si el formulario está definido en una librería de clases que tienes en
tu projecto sería:

EjecutarFormulario("MiLibrería.MiFormulario, MiLibrería")

Si tu librería está firmada con nombre seguro entonces hay que poner también
el public key token, la versión y el idioma.

EjecutarFormulario("MiLibrería.MiFormulario, MiLibrería, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=ElPublicKeyToken")


Saludos:

Jesús López
MVP
Respuesta Responder a este mensaje
#4 Adria Grau Rovira
23/01/2006 - 09:45 | Informe spam
Me da el siguiente error: "Value cannot be null".
Apuntando a Type.GetTupe(NombreFormulario)

:(
le paso lo siguiente al modulo: EjecutarFormulario(my.Forms.Form3)

Alguna idea de lo que hago mal?


Gracias

"Jesús López" escribió:

El nombre del formulario incluyendo el espacio de nombres. Por ejemplo:

EjecutarFormulario ("MiApplicationWindows.MiFormulario")

Alguien podría escribir en una caja de texto eso mismo y entonces podríamos
hacer:

EjecutarFormulario( MiCajaDeTexto.Text )

Pero si el formulario está definido en una librería de clases que tienes en
tu projecto sería:

EjecutarFormulario("MiLibrería.MiFormulario, MiLibrería")

Si tu librería está firmada con nombre seguro entonces hay que poner también
el public key token, la versión y el idioma.

EjecutarFormulario("MiLibrería.MiFormulario, MiLibrería, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=ElPublicKeyToken")


Saludos:

Jesús López
MVP



Respuesta Responder a este mensaje
#5 Jesús López
23/01/2006 - 10:18 | Informe spam
Que no uses el My, usa "NombreAplicacion.NombreFormulario"
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida