SoloCodigo
Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: pacegar en Martes 16 de Diciembre de 2003, 17:52
-
Me gustaría poder deshabilitar la "X" de un formulario padre de mi aplicacion, para que, por error, no se pueda cerrar al pulsarla... o por lo menos mostrar un mensaje de que si se desea cerrar realmente.
Gracias de antemano...
:blink:
-
Hola pacegar.
Esta es una pregunta recurrente...
Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If UnloadMode = 0 Then
If vbCancel = MsgBox( "¿Desea realmente salir?",vbOkCancel,"Salir") = vbCancel Then Cancel = 1
End If
End Sub
Suerte.
-
No logro que me funcione...
Al pulsar sobre la "X" cierto que entra en MDIForm_QueryUnload pero luego me salta a MDIForm_Unload y me cierra la aplicacion, sin tener en cuenta lo que haya contestado antes en la pregunta de salir si o no...
-
Fíjate en el valor de UnloadMode, indica el motivo de descarga del formulario:
0 - El usuario a pulsado en la X.
1 - El formulario se ha descargado por código (Unload Objeto).
2 - Windows se está cerrando.
3 - Se cerró desde el administrador de tareas.
4 - El form MDI Child se cierra porque su 'padre' se cierra.
5 - Un form se cierra porque su formulario propietario se cierra.
Cuando detectes que UnloadMode = 0 (es igual a cero), entonces das al parámetro Cancel que se pasa por referencia el valor 1, cancelando la operación de descarga.
Te aseguro que esto funciona así en cualquier plataforma o versión de windows que utilices.
De todas formas me acabo de fijar en un gazapo en el código que te escribí, seguro que no funciona por esto:
Don dije...
If vbCancel = MsgBox( "¿Desea realmente salir?",vbOkCancel,"Salir") = vbCancel Then
Debería decir...
If MsgBox( "¿Desea realmente salir?",vbOkCancel,"Salir") = vbCancel Then
Pero hoooombre...hay que se fijar maaaaás.
Chao.
-
Ok, si de ese "gazapo" ya me habia percatado...
Lo he vuelto a probar y ya me funciona... No entiendo pq antes no funcionaba.
Gracias!
:kicking:
-
Cuando des clic en la X aparecera un mensaje cerrar si o no
yo coloco en el formulario que deseo cerrar el sigte codigo:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Dim Msg ' Declara la variable.
If UnloadMode > 0 Then
' Si sale de la aplicación.
Msg = "¿Realmente desea salir de la aplicación?"
Else
' Si sólo se cierra el formulario.
Msg = "¿Realmente desea cerrar el formulario?"
End If
' Si el usuario hace clic en el botón No, se detiene QueryUnload.
If MsgBox(Msg, vbQuestion + vbYesNo, Me.Caption) = vbNo Then Cancel = True
End Sub
solo copia y pega