Visual Basic.NET - Abrir Formularios Dinamicamente

   
Vista:

Abrir Formularios Dinamicamente

Publicado por Carlos Alejo (1 intervención) el 24/08/2008 05:24:42
Buenas Tardes:
Quiero saber como se hace para abrir un formulario de manera dinamica. Me explico: En un string tengo el nombre de un formulario valido Ej. "Form001". Ese string va tomando el nombre de cualquiera de los formularios de la aplicacion. Como hago para instanciar y abrir el formulario ????

function abrir ("nombre del formulario a abrir en string")

dim formulario as new ?????????????

formulario.show

agradezco su colaboracion
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Abrir Formularios Dinamicamente

Publicado por Harold (411 intervenciones) el 24/08/2008 12:10:42
Hola: Aqui tines un ejemplo......

(cambia ReflectionSample por el nombre de tu proyecto), si tu form esta dentro de una carpeta seria: Tuproyecyo.Tucarpeta.Tuformulario

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

AbrirFormulario("Form001", nothing)

End Sub

Public Sub AbrirFormulario(ByVal Formulario As String, ByRef Padre As Form)

Try
Dim frmType As Type = Type.GetType("ReflectionSample." + Formulario)
Dim frm As Object = Activator.CreateInstance(frmType)

frmType.InvokeMember("Show", Reflection.BindingFlags.InvokeMethod, Nothing, frm, Nothing)
'CType(frm, Form).MdiParent = Padre

Catch ex As Exception
MsgBox(ex.Message.ToString)
End Try

End Sub

End Class
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Abrir Formularios Dinamicamente

Publicado por jehm (1 intervención) el 29/11/2008 23:46:02
Yo tengo dos maneras de hacerlo:
______________________________________________________________
Esto es si quieres abrir un formulario que es child de otro principal, llamandolo desde el formulario principal.
* le tienes que pasar como parametro el nombre del formulario a abrir

Sub AbrirChild (ByVal frm As Form)
frm.MdiParent = frmPrincipal
/ frmprincipal es el formulario parent o principal

/ esto es para indicar la posicion del formulario child cuando se abra
frm.StartPosition = FormStartPosition.Manual
frm.Top = posiciontop
frm.Left = posicionleft
frm.Show()
End Sub

______________________________________________________________
Esto es si quieres abrir un formulario que es child de uno principal llamando de otro formulario que tambien es child del mismo

* le tienes que pasar como parametro el nombre del formulario a abrir, y del formulario actual

Sub Fpasar(ByVal frm1 As Form, ByVal frm2 As Form)

frm2.MdiParent = FrmPrincipal

Dim top = frm1.Top
Dim left = frm1.Left

frm.StartPosition = FormStartPosition.Manual
frm.Location = New Point(left, top)
frm.Show() / muestra el formulario 'llamado'
frm1.Hide() / oculta el formulario que 'llama'
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar