none
MDI RRS feed

  • Pregunta

  • Hola a todo una consulta, en un formulario MDI  al momento que cierro se cierra todos los formularios hijos que estuviesen abiertos como haria para que si hay formularios abiertos me de el mensaje si desea cerrar los formularios, que no cierre de golpe y se cierre todo ya que aveces se puede cerrar por casualidad  

    Pedro Avila

    jueves, 5 de julio de 2012 17:32

Respuestas

  • Puedes controlar el cierre de los formularios hijos en el evento (de cada formulario hijo)

    Private Sub Form_Unload(Cancel As Integer)

    End Sub

    si no quieres que un formulario hijo se cierre estableces la variable Cancel a True

    Si un formulario hijo no se cierra, el cierre del MDI se suspende
    • Editado ToniAG jueves, 5 de julio de 2012 17:53
    • Marcado como respuesta Pedro Ávila jueves, 5 de julio de 2012 18:00
    jueves, 5 de julio de 2012 17:51
  • Tienes que validar, Preguntas si quieres cerrar el formulario en ese caso estableces Cancel=true
    • Marcado como respuesta Pedro Ávila jueves, 5 de julio de 2012 19:46
    jueves, 5 de julio de 2012 19:34
  • Prueba esto

    Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer)

         If Not ActiveForm Is Nothing Then
            MsgBox "Cierra los formularios"
            Cancel = True
         End If
             
    End Sub


    • Editado ToniAG jueves, 5 de julio de 2012 20:40
    • Marcado como respuesta Pedro Ávila jueves, 5 de julio de 2012 20:44
    jueves, 5 de julio de 2012 20:33

Todas las respuestas

  • Puedes controlar el cierre de los formularios hijos en el evento (de cada formulario hijo)

    Private Sub Form_Unload(Cancel As Integer)

    End Sub

    si no quieres que un formulario hijo se cierre estableces la variable Cancel a True

    Si un formulario hijo no se cierra, el cierre del MDI se suspende
    • Editado ToniAG jueves, 5 de julio de 2012 17:53
    • Marcado como respuesta Pedro Ávila jueves, 5 de julio de 2012 18:00
    jueves, 5 de julio de 2012 17:51
  • Hola Toni, ahora no se cierra ni el formulario hijo ni el MDI

    Pedro Avila

    jueves, 5 de julio de 2012 19:30
  • Tienes que validar, Preguntas si quieres cerrar el formulario en ese caso estableces Cancel=true
    • Marcado como respuesta Pedro Ávila jueves, 5 de julio de 2012 19:46
    jueves, 5 de julio de 2012 19:34
  • Toni el código lo puse en el MDI pero al momento de cerrar si tengo un formulario abierto y preciono cerrar(x) me sale el mensaje pero me oculta el formulario que estaba abierto

    Private Sub MDIForm_Unload(Cancel As Integer)
      Select Case MsgBox("Esta seguro de salir del sistema?", vbYesNo Or vbExclamation Or vbDefaultButton1, App.Title)
        Case vbYes
          Cancel = False
        Case vbNo
          Cancel = True
      End Select
    End Sub


    Pedro Avila

    jueves, 5 de julio de 2012 19:48
  • Tienes que ponerlo en el formulario hijo
    jueves, 5 de julio de 2012 19:53
  • Tambien podriar hacerlo en el MDI pero entonces tienes que utilizar el evento

    Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer)

    jueves, 5 de julio de 2012 19:56
  • cuando cierro el formulario hijo me pregunta si quiero salir del sistema

    ya lo puse en el form hijo


    Pedro Avila


    jueves, 5 de julio de 2012 19:58
  • Tienes que plantearte cómo quieres controlar el cierre del proyecto, lo puedes hacer de varias formas. Si lo controlas desde el MDI tienes que quitar la validación de cierre de los hijos y si quieres validar los cierres de los hijos, quita la validación del cierre de MDI, MDI no se cerrara mientras uno de sus formulario este abierto

    jueves, 5 de julio de 2012 20:09
  • Quiero controlarlo desde el MDI al momento de cerrar el MDI si hay un formulario hijo abierto me salga un mensaje cierre las ventanas abiertas y si no hay formularios abiertos que cierre en una.


    Pedro Avila

    jueves, 5 de julio de 2012 20:15
  • Prueba esto

    Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer)

         If Not ActiveForm Is Nothing Then
            MsgBox "Cierra los formularios"
            Cancel = True
         End If
             
    End Sub


    • Editado ToniAG jueves, 5 de julio de 2012 20:40
    • Marcado como respuesta Pedro Ávila jueves, 5 de julio de 2012 20:44
    jueves, 5 de julio de 2012 20:33
  • Gracias Toni funciono, ya lo había dejado para otro día

    Pedro Avila

    jueves, 5 de julio de 2012 20:44