Principales respuestas
Problema con un formulario MDI... sus hijos y un modal del hijo...

Pregunta
-
Hola a todos. Seguramente seria un titulo para una obra de teatro, pero me surgio un problemita con los MDI. Tengo definido un formulario MDI principal desde el cual disparo una serie de formularios "hijos" del principal. Resulta que ahora me apareció una dificultad con uno de esos formularios, que tiene que disparar un formulario modal de él. He intentado hacer algunas cosas, pero no me funcionaron. Alguien podria darme una mano de como podria llamar desde ese formulario hijo, al otro formulario modal ?
Saludos a todos y desde ya muchas gracias
domingo, 25 de abril de 2010 19:56
Respuestas
-
"Ubuntu-Man" preguntó:
> Alguien podria darme una mano de como podria llamar desde ese
> formulario hijo, al otro formulario modal ?Hola:
Para mostrar a un formulario de manera "modal", que yo sepa, solamente hay una única manera de hacerlo: llamando a su método ShowDialog:
Dim frm As New FormModal
frm.ShowDialog()
frm.Dispose()
Para más información, consulta el siguiente artículo:
Abrir y cerrar formularios con Visual Basic .net
Un saludo
Enrique Martínez [MS MVP - VB]- Propuesto como respuesta Enrique M. MontejoModerator domingo, 25 de abril de 2010 20:31
- Marcado como respuesta Mint Man domingo, 2 de mayo de 2010 1:40
domingo, 25 de abril de 2010 20:30Moderador -
hola
un consejo en la misma linea puedes definir e instancia el formulario, no ahce falta dos linea, o se esto no hace falta:
Dim objForm As Form
objForm = New FrmUsuarios
puedes hacer algo como esto:
Dim objForm New FrmUsuarios
ademas a objForm lo estabas declarando como form generic y no del tipo que querias visualizar
en tu caso lo que puedes hacer son dos cosas, o lo que menciona Enrique, o sea desde el FrmUsuarios, instancia el frmUsuariosPermisos , pero sin asignar el MdiParent, (ya que con esto no podrias usar el ShowDialog)
y hacer
Using frmUsuPermisos As New frmUsuariosPermisos
frmUsuPermisos.ShowDialog()
End Using
Nota: con el using te evitas el Close()
Pero este lo que ahces es fijar el formulario por fuera de la aplicacion MDI, la otra es usar algo como esto
WinForms – MDI – Formularios modales
como veras sua las api de windows, pero permite quwe dentro del ambiente modal, usar un formulario MDI, igual no es 100% mdi, ya que si puedes accionar el form inferior, pero si lo pones el gris las opciones quedaria sin posibilidad de accion
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Propuesto como respuesta Leandro TuttiniMVP martes, 27 de abril de 2010 0:18
- Marcado como respuesta Mint Man domingo, 2 de mayo de 2010 1:40
martes, 27 de abril de 2010 0:18
Todas las respuestas
-
hola
por llamar al form modal desde el hijo te refieres que quieres simplemente abrir el formulario, o comunicarte con el mismo
si desde el form hijo es que realzias la apertura y por lo tanto tienes la instancia del mismo podrias acceder sin problema a las propeidades y metodo publicas que este expone
o por ahi entendi mal la pregunta, por ahi si pones algun ejmeplo en codigo de lo que intentas lograr podramos ver de que se trata el problema
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentinadomingo, 25 de abril de 2010 20:27 -
"Ubuntu-Man" preguntó:
> Alguien podria darme una mano de como podria llamar desde ese
> formulario hijo, al otro formulario modal ?Hola:
Para mostrar a un formulario de manera "modal", que yo sepa, solamente hay una única manera de hacerlo: llamando a su método ShowDialog:
Dim frm As New FormModal
frm.ShowDialog()
frm.Dispose()
Para más información, consulta el siguiente artículo:
Abrir y cerrar formularios con Visual Basic .net
Un saludo
Enrique Martínez [MS MVP - VB]- Propuesto como respuesta Enrique M. MontejoModerator domingo, 25 de abril de 2010 20:31
- Marcado como respuesta Mint Man domingo, 2 de mayo de 2010 1:40
domingo, 25 de abril de 2010 20:30Moderador -
Hola Leandro, Desde el MDI principal llamo al formulario frmUsuarios asi:
'Dimensiono el nuevo objeto como un formulario
Dim objForm As Form
'Defino el nuevo objeto como el formulario que quiero mostrar
objForm = New FrmUsuarios
'Especifico quien es el formulario padre
objForm.MdiParent = Me
'Muestro el formulario
objForm.Show()
Desde el formulario frmUsuarios quiero llamar a otro formulario mas pequeño que se llama frmUsuariosPermisos que quiero que sea modal de frmUsuarios y por lo tanto sera modal de toda la aplicacion.
Como se hace ?
Saludos
lunes, 26 de abril de 2010 22:49 -
hola
un consejo en la misma linea puedes definir e instancia el formulario, no ahce falta dos linea, o se esto no hace falta:
Dim objForm As Form
objForm = New FrmUsuarios
puedes hacer algo como esto:
Dim objForm New FrmUsuarios
ademas a objForm lo estabas declarando como form generic y no del tipo que querias visualizar
en tu caso lo que puedes hacer son dos cosas, o lo que menciona Enrique, o sea desde el FrmUsuarios, instancia el frmUsuariosPermisos , pero sin asignar el MdiParent, (ya que con esto no podrias usar el ShowDialog)
y hacer
Using frmUsuPermisos As New frmUsuariosPermisos
frmUsuPermisos.ShowDialog()
End Using
Nota: con el using te evitas el Close()
Pero este lo que ahces es fijar el formulario por fuera de la aplicacion MDI, la otra es usar algo como esto
WinForms – MDI – Formularios modales
como veras sua las api de windows, pero permite quwe dentro del ambiente modal, usar un formulario MDI, igual no es 100% mdi, ya que si puedes accionar el form inferior, pero si lo pones el gris las opciones quedaria sin posibilidad de accion
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Propuesto como respuesta Leandro TuttiniMVP martes, 27 de abril de 2010 0:18
- Marcado como respuesta Mint Man domingo, 2 de mayo de 2010 1:40
martes, 27 de abril de 2010 0:18 -
Leandro, Enrique... anduvo barbaro lo que me recomendaron... Puntualmente Leandro funciono fantastico la primera parte de tu ultimo comentario. Saludos y desde ya muchas gracias...
domingo, 2 de mayo de 2010 1:37