¿Cómo puedo hacer que mi formulario de Windows haga algo cuando está cerrado?C# Windows Formulario: Al cerrar Haga [Proceso]
Respuesta
Maneje el evento FormClosed
.
Para hacerlo, vaya a la pestaña Eventos en la ventana Propiedades y haga doble clic en el evento FormClosed
para agregarle un controlador.
Luego puede poner su código en el controlador generado MyForm_FormClosed
.
También puede hacerlo anulando el método OnFormClosed
; para hacerlo, escriba override onformcl
en la ventana de código y OnFormClosed
de IntelliSense.
Si desea evitar que el formulario se cierre, maneje el evento FormClosing
en su lugar y establezca e.Cancel
en .
Agregue un controlador de eventos al evento FormClosed para su formulario.
public class Form1
{
public Form1()
{
this.FormClosed += MyClosedHandler;
}
protected void MyClosedHandler(object sender, EventArgs e)
{
// Handle the Event here.
}
}
Ese evento está en desuso – Ian
@Ian - Se ha solucionado. –
WinForms tiene dos eventos que es posible que desee ver.
El primero, el evento FormClosing
, ocurre antes de que el formulario se cierre realmente. En este caso, puede acceder a todos los controles y variables en la clase del formulario. También puede cancelar el formulario close configurando e.Cancel = true;
(donde e
es un System.Windows.Forms.FormClosingEventArgs
enviado como segundo argumento al FormClosing
).
El segundo, el evento FormClosed
, ocurre después de que se cierra el formulario. En este momento, no puede acceder a ningún control que tenga el formulario, aunque puede hacer una limpieza en variables (como el cierre de recursos administrados).
Se ha actualizado esto para utilizar 'FormClosing' y' FormClosed' como 'Closing' y' Closed' están en desuso. – Powerlord
Plus 2 para informar de forma efectiva de qué lo actualizó. – AidanO
¿Definitivamente son "todas las variables", así como los controles en el formulario?Intenté hace un momento y mencioné dos campos de la clase de Formulario I (heredados de Formulario) y se podía acceder a ellos correctamente: en el evento FormClosed – PandaWood
public FormName()
{
InitializeComponent();
this.FormClosed += FormName_FormClosed;
}
private void FormName_FormClosed(object sender, System.Windows.Forms.FormClosedEventArgs e)
{
//close logic here
}
O Otra alternativa es reemplazar los métodos OnFormClosed() o OnFormClosing() de System.Windows.Forms.Form.
Si se debe utilizar este método depende del contexto del problema, y es más útil cuando el formulario se subclasificará varias veces y todos deben realizar el mismo código.
Los eventos son más útiles para una o dos instancias si está haciendo lo mismo.
public class FormClass : Form
{
protected override void OnFormClosing(FormClosingEventArgs e)
{
base.OnFormClosing(e);
// Code
}
}
Sintaxis:
form_name.ActiveForm.Close();
Ejemplo:
{
Form1.ActiveForm.close();
}
- 1. MessageBox al cerrar el formulario
- 2. Cómo cerrar otro proceso de C#
- 3. C# Cerrar un formulario durante un constructor
- 4. ¿Cómo cerrar un formulario al presionar la tecla de escape?
- 5. ¿Cerrar un formulario desde otro formulario?
- 6. Eliminar formulario después de cerrar
- 7. Detectar el motivo para cerrar el formulario
- 8. Haga clic en el formulario transparente
- 9. ¿Cómo cancelar un formulario cerrar en Cerrar evento?
- 10. ¿Puedo deshabilitar el botón 'cerrar' de un formulario usando C#?
- 11. Recargue el formulario de Windows sin cerrar y volver a abrir
- 12. Cerrar los cuadros de diálogo secundarios al cerrar el elemento primario
- 13. Problema al enviar la señal al proceso secundario en C
- 14. jQuery Datepicker - cerrar en la entrada haga clic en
- 15. Pregunta al usuario antes de cerrar la aplicación C# WPF
- 16. Pasar datos al primer formulario del segundo formulario en C#
- 17. botón Escape para cerrar Windows Forms forman en C#
- 18. RaceOnRCWCleanup al cerrar aplicaciones WPF
- 19. Formulario de diálogo WinForms - ¿Cerrar o desechar?
- 20. Cerrar formulario sin solicitud de salida
- 21. ¿Activar un clic de botón de formulario y proceso al mismo tiempo?
- 22. Watir Webdriver cómo cerrar child windows
- 23. C# cerrar estándar
- 24. ¿Cómo acoplar un formulario de Windows en C#?
- 25. ¿Por qué un error RaceOnRCWCleanup al cerrar un formulario con control WebBrowser en él?
- 26. Enviar señal al proceso
- 27. Enviar CTRL + C al árbol de subproceso en Windows
- 28. Cómo cerrar una caja de lujo jQuery desde el botón, haga clic en
- 29. ¿Cómo cerrar el proceso de ejecución usando java?
- 30. cómo cerrar una ventana desde un proceso diferente
no hay ningún evento "cerrado", sólo "FormClosed" - muy poco intuitivo –
@hello_earth: Hubo un evento 'Closed' en .Net 1; fue reemplazado en .Net 2.0 debido a varios problemas. El evento 'Closed' original todavía está ahí para compatibilidad, pero está oculto. – SLaks