Private Sub Form1_FormClosing(ByVal
sender As System.Object, ByVal e As
System.Windows.Forms.FormClosingEventArgs) Handles
MyBase.FormClosing
If MsgBox("Si cierra la aplicacion no se guardaran los cambios, realmente desea salir?",
MsgBoxStyle.YesNo, "Salir?") = MsgBoxResult.Yes Then
Application.Exit()
Else
e.Cancel = True
End If
End Sub
Aparentemente funcionaba bien, al darle clic en el botón de cerrar, salia el mensaje de advertencia, si contestabas que no deseabas salir, el evento de cerrar se cancelaba. Pero resulta que cuando el usuario respondiera que si, volvía a realizar la misma pregunta si deseaba salir... y si respondía si otra vez, era entonces cuando se cerraba la aplicación.
Analizando un poco la situación, llegue a lo siguiente:
- La funcion Application.Exit, involucraba realizar el cierre de todos los formularios para luego terminar la aplicacion, por lo tanto, puesto que tengo control sobre ese evento con el form_closing, la funcion aplication.exit, volvia a desencadenar mi evento form_closing, por esa razon preguntaba dos veces..
Con esto concluimos que el evento form_closing, no siempre se sucede cuando el usuario intenta cerrar un formulario, sino que puede desencadenarse con otros eventos que el usuario no realiza propiamente.
Entonces la solución fue:
- Primero averiguar si ese cierre del formulario fue ocasionado por el usuario, y así entonces desplegar el mensaje si realmente deseaba cerrar el form y en consecuencia la aplicacion.
Así que esta fue la solución:
Gracias a la propiedad closereason, para saber la razon del cierre de un formularion, en este caso, el cierre por parte del usuario
Private Sub Form1_FormClosing(ByVal
sender As System.Object, ByVal e As
System.Windows.Forms.FormClosingEventArgs) Handles
MyBase.FormClosing
If e.CloseReason = CloseReason.UserClosing Then
If MsgBox("Si cierra la aplicacion no se guardaran los cambios, realmente desea salir?",
MsgBoxStyle.YesNo, "Salir?") = MsgBoxResult.Yes Then
Application.Exit()
Else
e.Cancel = True
End If
End If End Sub
excelente respuesta y solucion, las respuestas claras en el tema de programacion son vitales................
ResponderEliminargracias amigo
Perfecto
ResponderEliminarJusto lo que necesitaba.
Gracias
Este comentario ha sido eliminado por el autor.
ResponderEliminarConsulta. Cuál es más eficiente Messagebox o Msgbox?
ResponderEliminarExactamente lo que andaba buscado, muchas gracias.
ResponderEliminarMuchas gracias! Justo lo que estaba buscando!
ResponderEliminarGracias por el aporte que el Eterno te Bendiga.
ResponderEliminarThe Best Casinos with Real Money Casino Games
ResponderEliminarDiscover the best slots and 무료슬롯머신 table games online, with real money online 우리 계열 casino bonuses & promotions! We have over 80's slots for you to enjoy.Bonus Features 아 샤벳 · Online Slots · 바카라분석법 Bonus Features · Live bwin Dealer games
Harrah's Hotel and Casino Las Vegas - Mapyro
ResponderEliminarHarrah's 포항 출장마사지 Hotel 제주도 출장마사지 and Casino Las Vegas 김포 출장샵 - 포천 출장마사지 Mapyro 여주 출장안마