Comment puis-je obtenir mon formulaire Windows pour faire quelque chose quand il est fermé.C# Formulaire Windows: On Fermer Faire [Traiter]
Répondre
Gérez l'événement FormClosed
. Pour ce faire, accédez à l'onglet Événements dans la fenêtre Propriétés et double-cliquez sur l'événement FormClosed
pour ajouter un gestionnaire pour cela.
Vous pouvez ensuite placer votre code dans le gestionnaire MyForm_FormClosed
généré.
Vous pouvez également le faire en remplaçant la méthode OnFormClosed
; Pour ce faire, tapez override onformcl
dans la fenêtre de code et OnFormClosed
dans IntelliSense.
Si vous souhaitez empêcher la fermeture du formulaire, gérez plutôt l'événement FormClosing
et définissez e.Cancel
sur true
.
Ajoutez un gestionnaire d'événements à l'événement FormClosed pour votre formulaire.
public class Form1
{
public Form1()
{
this.FormClosed += MyClosedHandler;
}
protected void MyClosedHandler(object sender, EventArgs e)
{
// Handle the Event here.
}
}
Cet événement est obsolète – Ian
@Ian - Correction d'un problème. –
WinForms a deux événements que vous pouvez vouloir regarder.
Le premier, l'événement FormClosing
, se produit avant la fermeture du formulaire. Dans ce cas, vous pouvez toujours accéder à tous les contrôles et variables de la classe du formulaire. Vous pouvez également annuler la fermeture du formulaire en définissant e.Cancel = true;
(où e
est un System.Windows.Forms.FormClosingEventArgs
envoyé en tant que deuxième argument à FormClosing
).
La seconde, l'événement FormClosed
, se produit après la fermeture du formulaire. À ce stade, vous ne pouvez pas accéder aux contrôles que le formulaire avait, bien que vous puissiez toujours effectuer le nettoyage sur les variables (telles que la fermeture des ressources gérées).
Mis à jour pour utiliser 'FormClosing' et' FormClosed' comme 'Closing' et' Closed' sont obsolètes. – Powerlord
Plus 2 pour dire exactement ce que vous avez mis à jour et à. – AidanO
Est-ce définitivement "toutes les variables" ainsi que les contrôles sur le formulaire?J'ai essayé tout à l'heure et j'ai référencé 2 champs de la classe Form que j'ai (hérité de Form) et ils pourraient être bien accessibles - dans l'événement FormClosed – PandaWood
public FormName()
{
InitializeComponent();
this.FormClosed += FormName_FormClosed;
}
private void FormName_FormClosed(object sender, System.Windows.Forms.FormClosedEventArgs e)
{
//close logic here
}
Ou autre variante consiste à remplacer les méthodes OnFormClosed() ou OnFormClosing() à partir de System.Windows.Forms.Form. Si vous devez utiliser cette méthode, cela dépend du contexte du problème et est plus utilisable lorsque le formulaire sera sous-classé plusieurs fois et que tous doivent exécuter le même code.
Les événements sont plus utiles pour une ou deux instances si vous faites la même chose.
public class FormClass : Form
{
protected override void OnFormClosing(FormClosingEventArgs e)
{
base.OnFormClosing(e);
// Code
}
}
Syntaxe:
form_name.ActiveForm.Close();
Exemple:
{
Form1.ActiveForm.close();
}
- 1. Comment faire Formulaire Transperent dans Windows C#?
- 2. C# - Fermer un formulaire enfant du parent
- 3. Comment fermer une application C# sans formulaire
- 4. Fermer automatiquement l'explorateur Windows
- 5. Comment fermer par programme un formulaire InfoPath en C#?
- 6. Problèmes lors de la fermeture d'un formulaire Windows C#
- 7. Comment faire un formulaire Windows à venir dans l'application Windows fait dans C#?
- 8. Force l'application à fermer sur Windows CE en utilisant C++
- 9. Fenêtre ouvrir et fermer l'effet avec C# dans l'application Windows
- 10. Redirection vers un autre formulaire dans l'application Windows C#
- 11. Fermer une div après l'envoi d'un formulaire
- 12. Zoom pour un formulaire Windows en C#
- 13. Rotation de formulaire Windows
- 14. Comment faire pour refléter un formulaire C#?
- 15. Comment fermer un formulaire en appuyant sur la touche d'échappement?
- 16. Fermeture de formulaire enregistrer les modifications avant de fermer
- 17. Puis-je fermer un formulaire Windows à partir d'un lien dans un contrôle WebBrowser?
- 18. Comment traiter avec SET ANSI_NULLS ON ou OFF?
- 19. Windows Terminal - Windows Formulaire à intégrer cmd
- 20. Formulaire booléen Ruby on Rails
- 21. Ruby on Rails: formulaire select
- 22. Windows formulaire de demande
- 23. Comment fermer un certain processus sur Windows?
- 24. Comment faire pour que notre formulaire (application) commence à s'exécuter lorsque Windows démarre en C#?
- 25. C# Comment traiter la chaîne?
- 26. Envoyer Ctrl + C pour traiter
- 27. asp.net peut-on traiter une demi-page Web soumise?
- 28. Comment traiter les dates estimées dans Ruby on Rails?
- 29. C# Comment faire pour augmenter l'événement PostBack on Timer.Tick?
il n'y a aucun événement "fermé", seulement "FormClosed" - tout à fait unintuitive –
@hello_earth: Il y avait un événement 'Closed' dans .Net 1; il a été remplacé dans .Net 2.0 en raison de divers problèmes. L'événement 'Closed' d'origine est toujours là pour la compatibilité, mais est caché. – SLaks