none
Como abrir un mdichild a la vez RRS feed

  • Pregunta

  • tengo mi Mdicontainer que es un form normal y ya he puesto los otros para que no se salgan y tal pero quiero saber como abrir uno solo a la vez, ya que noto que abro un child y debajo queda otro y como hago que el que he abierto no se abra mas a no ser que abra otro.
    domingo, 1 de mayo de 2016 19:15

Respuestas

  • Hola,

    Puedes crear un método, que obtenga los hijos abiertos y los cierre.

    Lo pones en el padre al abrir los nuevos forms :

      Public Sub cerrarHijos()
            For Each frm As Form In Me.MdiChildren
                frm.Close()
            Next
        End Sub

    Y cuando abres los formularios, los llamas antes :

       Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    
            cerrarHijos()
    
            Dim f1 As New Form1
            f1.MdiParent = Me
            f1.Show()
    
        End Sub
    
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    
            cerrarHijos()
    
            Dim f3 As New Form3
            f3.MdiParent = Me
            f3.Show()
    
        End Sub

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta VictorD514 domingo, 1 de mayo de 2016 23:37
    domingo, 1 de mayo de 2016 23:24

Todas las respuestas

  • Hola,

    Te refieres a que solo puedas crear una instancia de tu form hijo, y que ya no se puede abrir otro?

    Aquí hay un hilo similar, espero sea lo que buscas.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    domingo, 1 de mayo de 2016 20:08
  • Muchísimas gracias pero, como hago ahora que los demás child´s se cierren por que si abro por ejemplo el form1 y luego el form2 abajo queda abierto el form1, he tratado cerrándolos con la acción del botón pero nada. muchas gracias.
    domingo, 1 de mayo de 2016 23:11
  • Hola,

    Puedes crear un método, que obtenga los hijos abiertos y los cierre.

    Lo pones en el padre al abrir los nuevos forms :

      Public Sub cerrarHijos()
            For Each frm As Form In Me.MdiChildren
                frm.Close()
            Next
        End Sub

    Y cuando abres los formularios, los llamas antes :

       Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    
            cerrarHijos()
    
            Dim f1 As New Form1
            f1.MdiParent = Me
            f1.Show()
    
        End Sub
    
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    
            cerrarHijos()
    
            Dim f3 As New Form3
            f3.MdiParent = Me
            f3.Show()
    
        End Sub

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta VictorD514 domingo, 1 de mayo de 2016 23:37
    domingo, 1 de mayo de 2016 23:24