Principales respuestas
Se puede abrir un formulario dentro de otro formulario?

Pregunta
-
Cómo están compañeros foristas? Saludos.Me estaba preguntando si existe la manera de abrir formularios dentro de un formulario principal. Lo pregunto porque he visto programas que lo hacen, pero no sé si VB 2008 traiga esa opción.Una de las razones por las que quiero implementar esto es para lograr que cuando la aplicación principal se minimice, lo hagan también las ventanas abiertas dentro de la aplicación, cosa que también he visto en algunos programas.Entonces, sí existe la forma?
Si quieres APRENDER solo tienes que QUERER...domingo, 20 de diciembre de 2009 22:43
Respuestas
-
hola
- por formulario principal te refires a uno del tipo MDI ?
si es asi puedes hacer con el metodo Show(), por supuesto rpeviamente asignando la propeidad MdiParent
Dim form As New Form2
form.MdiParent = Me
form.Show()
seria basicamente esta la forma de hacerlo
bueno espero haber entendido bien la pregunta
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Marcado como respuesta Jeison Friedman lunes, 21 de diciembre de 2009 2:57
domingo, 20 de diciembre de 2009 22:50
Todas las respuestas
-
hola
- por formulario principal te refires a uno del tipo MDI ?
si es asi puedes hacer con el metodo Show(), por supuesto rpeviamente asignando la propeidad MdiParent
Dim form As New Form2
form.MdiParent = Me
form.Show()
seria basicamente esta la forma de hacerlo
bueno espero haber entendido bien la pregunta
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Marcado como respuesta Jeison Friedman lunes, 21 de diciembre de 2009 2:57
domingo, 20 de diciembre de 2009 22:50 -
Ok. Ya hice esta parte: form.MdiParent = Me, pero me da un error, creo que porque me falta configurar el formulario principal como contenedor. Cómo podría hacer eso?
Si quieres APRENDER solo tienes que QUERER...domingo, 20 de diciembre de 2009 23:37 -
hola
al formulario principal busca la propiedad IsMdiContainer
esto realizalo en tiempo de diseño
de esta forma ya dejaras fino a este formulario como contenedor de formulario MDI
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Propuesto como respuesta Roberto Catalán miércoles, 25 de enero de 2012 4:38
domingo, 20 de diciembre de 2009 23:39 -
Ya lo vi, gracias. Pero tengo dos problemas con eso:1. Me asigna un color automático al formulario, y ya le tengo su color definido.2. No me muestra el formulario al llamarlo (form.show()). No me dio el error pero no me lo muestra.Qué crees que pueda ser? Seguiré revisando.
Si quieres APRENDER solo tienes que QUERER...domingo, 20 de diciembre de 2009 23:46 -
hola
- lo del color podrias cambiarlo si usas la propiedad BackColor del formulario
- lo que no muestra el formulario, mm la verdad es raro
habria que revisar que puede estar pasando, pero desde donde lanzas la apertura?
lo haces desde alun item del menu del formulario principal, de algun boton quizas, has verificado que lso handler de los evento estan correctos y no se muestre l form porque en realidad no se lanza el evento
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentinadomingo, 20 de diciembre de 2009 23:51 -
Ya revisé, aunque sigo sin solucionarlo. Quité la línea form.MdiParent = Me y me muestra el formulario. O sea que ahí está el problema. Algo debe faltarme.
Si quieres APRENDER solo tienes que QUERER...domingo, 20 de diciembre de 2009 23:56 -
este formulario lo estas abriendo directamente desde el formulario que ahs definido como MDIContainer ?
o lo abres desde un formulario hijo?
lo preguntpo porque por ahi el uso del Me al asignar la propeidad MdiParent cambie segun desde donde lo abres
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentinalunes, 21 de diciembre de 2009 0:03 -
Además, la propiedad BackColor del formulario principal se deshabilita al establecerlo como contenedor MDI.
Si quieres APRENDER solo tienes que QUERER...lunes, 21 de diciembre de 2009 0:06 -
Sí, lo estoy abriendo desde el menú del formulario principal. Esta es la sentencia:Private Sub ArticulosToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ArticulosToolStripMenuItem1.ClickArticulos.MdiParent = MeArticulos.Show()End SubNo sé qué pasa.
Si quieres APRENDER solo tienes que QUERER...lunes, 21 de diciembre de 2009 0:19 -
hola
para cambiar el colo de formado no podras hacerlo desde las propeidades directa del formulario lo deberas hacer poc codigo
analiza el ejemplo del link
Form. IsMdiContainer
deberas agregar el codigo
private void Form1_Load(Object sender, System.EventArgs e)
{
SetBackGroundColorOfMDIForm();
}
private void SetBackGroundColorOfMDIForm()
{
for (int iCtr = 0; iCtr < this.get_Controls().get_Count(); iCtr++) {
Control ctl = this.get_Controls().get_Item(iCtr);
if (ctl instanceof MdiClient) {
// If the control is the correct type,
// change the color.
ctl.set_BackColor(System.Drawing.Color.get_PaleGreen());
}
}
}
como veras es algo rebuscado
con respeto al form, no veo que hayas creado la instancia
Private Sub ArticulosToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ArticulosToolStripMenuItem1.Click
Dim form New Articulos()
form.MdiParent = Me
form.Show()
End Sub
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentinalunes, 21 de diciembre de 2009 0:26 -
Gracias! Ya vi lo que pasaba. Casualmente tengo un control Panel justo en medio del formulario principal, y lo que pasaba era que cuando abría el otro formulario quedaba por debajo del panel. Ahora tengo que probar cómo hacer que el panel quede por debajo.
Si quieres APRENDER solo tienes que QUERER...lunes, 21 de diciembre de 2009 0:44 -
Oye, otra pregunta. Lo único que puedo usar como contenedor es un formulario o hay algún control que funcione de ese modo? Me serviría más usar un control en vez del formulario.
Si quieres APRENDER solo tienes que QUERER...- Propuesto como respuesta Hiram Melquisedec jueves, 5 de marzo de 2020 1:06
lunes, 21 de diciembre de 2009 1:03 -
solo si por casualidad desees usar o cambiar el fondo del formulario MDparent o container la propiedad backcolor es dificil implementar , pero lo que puedes es hacer una imagen de color ediatndola con Micorosoft Paint y despues lo pones como bacgraound image y listo,...saludos
Melvin.
Marca como respuesta a la mejor contestacion que el usuario Responda....Melvinlunes, 21 de diciembre de 2009 1:06 -
Gracias Melvin. Es una solución. Lo malo es que tengo un módulo de personalización gráfica que permite al usuario cambiar el color de fondo del formulario principal, pero con esta limitación no será posible. De todos modos esa parte ya la tengo resuelta.Lo que sí me gustaría saber es lo último que pregunté, a saber, si en vez de definir al formulario como contenedor puedo usar un control como el Panel, por ejemplo, para que este sea el contenedor de los subformularios.Otra cosa que me inquieta es que los formularios "hijo" se van al fondo del formulario "padre", haciendo que los demás controles queden por encima de dicho formulario "hijo". Se puede solucionar?
Si quieres APRENDER solo tienes que QUERER...lunes, 21 de diciembre de 2009 1:19 -
Generalmente el formulario MDparen es como solo contenedor y los formularion que se mustran dentro de el se muestran como background y lo que quiere decir es que es sencible ya que los formularios se muestran como imagen , como si solo estubieras mostrando una imagen plasmada en el form con la diferencia de que estos formuarios hijos se puede mover y las imagenes no,,, bueno la idea es que creo que sera imposible ya que cualquier otro control que pongas encina del mdparen cubriran los otros formuarios que se estan mostrando sencitivamente . laver dad no creo yo estoy trabajando en uno cimilar ahorita y esa fue la unica solucion que hacer par evitar el color gris del parent form,,,,,,
Marca como respuesta a la mejor contestacion que el usuario Responda....Melvinlunes, 21 de diciembre de 2009 1:46 -
SOY NUEVA CON ESTE ASUNTO,
ESTOY DESARROLLANDO EN .NET EN VS2010
Y TENGO FORM_PRINCIPAL
Y TENGO UN MENUSTRIP CON VARIAS OPCIONES NADA ITEM ABRE UNA NUEVA FORM, PERO QUIERO QUE ESTE DENTRO DE LA PRINCIPAL, DEBO COLOCAR UN CONTENEDOR?
DE ANTEMANO GRACIAS....
viernes, 18 de febrero de 2011 20:09 -
Sencillo.
Primero debes cambiar al formulario principal la propiedad IsMdiContainer a True
Segundo Añadir un form nuevo que se llame Frmtool o como quieras.
Tercero crear una referencia a este nuevo form con un boton ej:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim MiForm As New Frmtool
MiForm.MdiParent = Me
MiForm.Show()
End SubY listo ya debes tener un a ventana dentro de otra.
Saludos...
- Propuesto como respuesta Ntfsdan32 lunes, 10 de septiembre de 2012 4:34
lunes, 10 de septiembre de 2012 4:34