Traemos la mejor solución que hemos encontrado en todo internet. Deseamos que te sea útil y si puedes compartir cualquier detalle que nos pueda ayudar a mejorar siente la libertad de hacerlo..
Solución:
Esto hace el trabajo:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
e.Cancel = true;
Editar: En respuesta a la preocupación de pix0rs, sí, tiene razón en que no podrá cerrar programáticamente la aplicación. Sin embargo, puede simplemente eliminar el controlador de eventos para el evento form_closing antes de cerrar el formulario:
this.FormClosing -= new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
this.Close();
Si miras el valor de FormClosingEventArgs e.CloseReason
, le dirá por qué se cierra el formulario. A continuación, puede decidir qué hacer, los valores posibles son:
Nombre de miembro – descripción
Ninguna – No se definió o no se pudo determinar la causa del cierre.
WindowsShutDown – El sistema operativo cierra todas las aplicaciones antes de cerrarse.
MdiFormCierre – El formulario principal de este formulario de interfaz de múltiples documentos (MDI) se está cerrando.
UsuarioCierre – El usuario cierra el formulario a través de la interfaz de usuario (UI), por ejemplo, al hacer clic en el botón Cerrar en la ventana del formulario, seleccionar Cerrar en el menú de control de la ventana o presionar ALT+F4.
TaskManagerCierre – El Administrador de tareas de Microsoft Windows está cerrando la aplicación.
FormularioPropietarioCierre – El formulario de propietario se está cerrando.
SolicitudSalidaLlamada – Se invocó el método Exit de la clase Application.
Creo que esta es la forma correcta de hacerlo:
protected override void OnFormClosing(FormClosingEventArgs e)
switch (e.CloseReason)
case CloseReason.UserClosing:
e.Cancel = true;
break;
base.OnFormClosing(e);
Valoraciones y comentarios
Recuerda mostrar este escrito si lograste el éxito.