Tengo una sola aplicación de formulario de Windows que se ejecuta en el icono de la bandeja del sistema. Si el usuario pulsa el botón X del formulario de Windows, se muestra un mensaje con Sí y No (Sí -> cerrar el formulario --- No-> mantener el formulario ejecutándose en el icono de la bandeja del sistema). pensaba para evitar que el escenario cuando el usuario abre otra instancia de la aplicación cuando ya existe una instancia en ejecución por lo que he utilizado este código:Application.Exit() y evento FormClosing en Vb.net
If Process.GetProcessesByName(Process.GetCurrentProcess.ProcessName).Length> 1 Then
MessageBox.Show("Another instance is running", "Error Window", MessageBoxButtons.OK,
MessageBoxIcon.Exclamation)
Application.Exit()
End If
El problema es que cuando quiero probar este mensaje se muestra pero después de presionar Aceptar, aparece un nuevo cuadro de mensaje (el de Private Sub Form_FormClosing). Si elijo NO tendré que ejecutar la instancia. He leído que Application.Exit desencadena el evento Form_FormClosing.
¿Hay alguna posibilidad de cancelar la activación del evento Form_FormClosing, o estoy haciendo algo mal?
'este es el procedimiento FormClosing
Private Sub Form_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Try
Dim response As MsgBoxResult
response = MsgBox("Are you sure you want to exit", CType(MsgBoxStyle.Question + MsgBoxStyle.YesNo, MsgBoxStyle), "Confirm")
'If the user press Yes the application wil close
'because the application remains in taskmanager after closing i decide to kill the current process
If response = MsgBoxResult.Yes Then
Process.GetCurrentProcess().Kill()
ElseIf response = MsgBoxResult.No Then
e.Cancel = True
Me.WindowState = FormWindowState.Minimized
Me.Hide()
NotifyIcon1.Visible = True
End If
PD: No soy un programador por lo que no sea por favor a las duras conmigo :)
Gracias por la respuesta ... He encontrado la configuración de Visual Studio Properties si debería estar bien también para usar este método ...desafortunadamente no logré por qué mi aplicación no se cierra desde el administrador de tareas después del cierre ... es por eso que he encontrado esta solución temporal ... Básicamente, la aplicación es un formulario simple de Windows. – Operagust