Wie kann ich meine Windows-Formular, etwas zu tun, wenn es geschlossen ist.C# Windows Form: Beim Schließen Do [Prozess]
Antwort
Behandeln Sie das Ereignis FormClosed
.
Wechseln Sie dazu auf die Registerkarte Ereignisse im Fenster Eigenschaften und doppelklicken Sie auf das Ereignis FormClosed
, um einen Handler dafür hinzuzufügen.
Sie können dann Ihren Code in den generierten MyForm_FormClosed
Handler setzen.
Sie können dies auch durch Überschreiben der OnFormClosed
Methode; Geben Sie override onformcl
in dem Codefenster und OnFormClosed
von IntelliSense ein, um das zu tun.
Wenn Sie das Schließen des Formulars verhindern möchten, behandeln Sie stattdessen das Ereignis FormClosing
und setzen Sie e.Cancel
auf true
.
Fügen Sie dem Ereignis FormClosed für Ihr Formular einen Ereignishandler hinzu.
public class Form1
{
public Form1()
{
this.FormClosed += MyClosedHandler;
}
protected void MyClosedHandler(object sender, EventArgs e)
{
// Handle the Event here.
}
}
Dieses Ereignis ist veraltet – Ian
@Ian - Fixed it. –
WinForms hat zwei Ereignisse, die Sie sich ansehen möchten.
Das erste, das FormClosing
Ereignis passiert, bevor das Formular tatsächlich geschlossen wird. In diesem Fall können Sie weiterhin auf alle Steuerelemente und Variablen in der Klasse des Formulars zugreifen. Sie können das Formular auch schließen, indem Sie e.Cancel = true;
(wobei e
eine System.Windows.Forms.FormClosingEventArgs
als zweites Argument an FormClosing
gesendet wird) festlegen.
Die zweite, die FormClosed
Ereignis passiert, nachdem das Formular geschlossen ist. Zu diesem Zeitpunkt können Sie nicht auf alle Steuerelemente zugreifen, die das Formular enthielt, auch wenn Sie weiterhin für Variablen bereinigen können (z. B. Schließen verwalteter Ressourcen).
Dies wurde aktualisiert, um 'FormClosing' und' FormClosed' zu verwenden, da 'Closing' und' Closed' veraltet sind. – Powerlord
Plus 2, um genau zu sagen, was Sie von und zu aktualisiert haben. – AidanO
Ist es definitiv "alle Variablen" sowie Kontrollen auf dem Formular?Ich habe gerade versucht und referenzierte 2 Felder der Form-Klasse, die ich habe (geerbt von Form) und sie konnten gut zugegriffen werden - in der FormClosed Ereignis – PandaWood
public FormName()
{
InitializeComponent();
this.FormClosed += FormName_FormClosed;
}
private void FormName_FormClosed(object sender, System.Windows.Forms.FormClosedEventArgs e)
{
//close logic here
}
Oder eine andere Alternative ist, die OnFormClosed() oder OnFormClosing() Methoden von System.Windows.Forms.Form außer Kraft zu setzen.
Ob Sie diese Methode verwenden sollten, hängt vom Kontext des Problems ab und ist besser nutzbar, wenn das Formular mehrmals unterklassifiziert wird und alle denselben Code ausführen müssen.
Ereignisse sind nützlicher für ein oder zwei Instanzen, wenn Sie das gleiche tun.
public class FormClass : Form
{
protected override void OnFormClosing(FormClosingEventArgs e)
{
base.OnFormClosing(e);
// Code
}
}
Syntax:
form_name.ActiveForm.Close();
Beispiel:
{
Form1.ActiveForm.close();
}
- 1. Windows Form: schließen, aber nicht schließen
- 2. JQuery Clear Form beim Schließen
- 3. "do" in "do Application.Run (Form)" Satz
- 4. C# Windows Forms-Anwendung schließen
- 5. C# Windows Form nicht fokussiert
- 6. C# - Windows Form Design
- 7. C# Windows Form Databinding
- 8. Windows Form, C#, Hintergrundbild
- 9. C#: Schließen Prozess auf App-Prozess 'töten (mit Taskman)
- 10. C# FORM mit Bild und automatisch schließen
- 11. C# Windows Form aplication IAsyncOperation
- 12. NodeJS - Prozess hängt beim Beenden (Strg + C)
- 13. Windows Form UI Thread Problem C#
- 14. Stop Prozess ohne Fenster schließen in cs
- 15. Windows C++ - Thread mit CloseHandle schließen
- 16. Ein Event Handler beim Schließen Button im Windows-Formular geklickt
- 17. C# Windows Form Anwendung ist während der Laufzeit gesperrt
- 18. Ausführen von Code nach dem Schließen des Formulars in einer Windows Form-Anwendung C#
- 19. C# Windows Form TreeView Sortieren nach LabelEdit
- 20. Wie immer Unterstreichungszeichen anzeigen? (C# Windows Form)
- 21. Launch System Screensaver von C# Windows Form
- 22. Design einer C# Windows Form App
- 23. DataGridView-Spalten in C# sortieren? (Windows Form)
- 24. C# rückgängig macht in Windows Form-Anwendung
- 25. Grafik Button States in C# Windows Form
- 26. C#, Windows Form, Messagebox oben nicht funktioniert
- 27. Ändern der Größe von C# Windows Form
- 28. C# Windows Form-Anwendungen in Mac
- 29. Asynchrone Anzeige in Windows Form Anwendung C#
- 30. Testen einer Windows Form-Anwendung in C#
es kein "Closed" Ereignis ist, nur "Formclosed" - ganz unintuitive –
@hello_earth: Es war eine 'Closed' Veranstaltung in .Net 1; Es wurde in .Net 2.0 aufgrund verschiedener Probleme ersetzt. Das ursprüngliche "Closed" -Ereignis ist aus Kompatibilitätsgründen noch vorhanden, aber es ist ausgeblendet. – SLaks