


CloseReason-Aufzählung von Args-Parametern in FormClosing- und FormClosed-Ereignissen in der C#-Sprache
Mein Betriebssystem ist Win7 Ultimate, die VS-Version ist VS2012 und die .NET-Version ist .NET Framework 4.5.
Im FormClosing-Ereignis des Formulars gibt es eine Aufzählungsvariable CloseReason unter dem zweiten Parameter (Typ FormClosingEventArgs) und im FormClosed-Ereignis des Formulars gibt es auch eine Aufzählungsvariable unter dem zweiten Parameter (FormClosedEventArgs). Typ) CloseReason . Die CloseReason-Enumeration befindet sich unter dem Namespace System.Windows.Forms.
Wie im folgenden Codeausschnitt gezeigt, befindet sich CloseReason in der FormClosingEventArgs-Typvariable e des FormClosing-Ereignisses des Formulars.
private void FormMain_FormClosing(object sender, FormClosingEventArgs e) { switch (e.CloseReason) { case CloseReason.None: { MessageBox.Show("Closing: CloseReason.None"); } break; case CloseReason.WindowsShutDown: { MessageBox.Show("Closing: CloseReason.WindowsShutDown"); } break; case CloseReason.MdiFormClosing: { MessageBox.Show("Closing: CloseReason.MdiFormClosing"); } break; case CloseReason.UserClosing: { MessageBox.Show("Closing: CloseReason.UserClosing"); } break; case CloseReason.TaskManagerClosing: { MessageBox.Show("Closing: CloseReason.TaskManagerClosing"); } break; case CloseReason.FormOwnerClosing: { MessageBox.Show("Closing: CloseReason.FormOwnerClosing"); } break; case CloseReason.ApplicationExitCall: { MessageBox.Show("Closing: CloseReason.ApplicationExitCall"); } break; } }
Aus Sicht der Metadaten hat diese Aufzählung insgesamt die folgenden 7 Aufzählungswerte:
#region 程序集 System.Windows.Forms.dll, v4.0.0.0 // C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Windows.Forms.dll #endregion using System; namespace System.Windows.Forms { // 摘要: // 指定窗体关闭的原因。 public enum CloseReason { // 摘要: // 关闭原因未定义或者无法确定。 None = 0, // // 摘要: // 操作系统正在关闭所有应用程序以便准备关机。 WindowsShutDown = 1, // // 摘要: // 此多文档界面 (MDI) 窗体的父窗体正在关闭。 MdiFormClosing = 2, // // 摘要: // 用户正在通过用户界面 (UI) 关闭该窗体,例如通过单击窗体窗口上的“关闭”按钮,通过选择窗口控制菜单上的“关闭”按钮,或者通过按 Alt+F4 // 等方式关闭。 UserClosing = 3, // // 摘要: // Microsoft Windows 任务管理器正在关闭应用程序。 TaskManagerClosing = 4, // // 摘要: // 所有者窗体正在关闭。 FormOwnerClosing = 5, // // 摘要: // System.Windows.Forms.Application 类的 System.Windows.Forms.Application.Exit() // 方法被调用。 ApplicationExitCall = 6, } }
Der MSDN dieser Aufzählung kann auf die Seite verweisen:
https://msdn.microsoft.com/en-us/library/system.windows.forms.closereason(v=vs.110).aspx
Mit Ausnahme des Typs „Keine“ dieser Artikel hat alle sechs Aufzählungswerte. Der Test wurde durchgeführt und die Ergebnisse des Tests werden hier aufgezeichnet.
1. CloseReason.WindowsShutDown
Dieser CloseReason wird ausgelöst, wenn Windows abgemeldet oder geschlossen wird. Fügen Sie hier jedoch keine Elemente wie MessageBox hinzu, da Windows feststellt, dass das aktuelle Programm nicht mehr verfügbar ist Wenn das Programm geschlossen wird, wird das Schließen dieses Programms erzwungen.
2. CloseReason.MdiFormClosing
Wenn das aktuelle Formular ein MDI-Unterformular ist und das MDI-Containerformular geschlossen ist, wird dieser CloseReason angefordert, wenn die aktuellen Ereignisse FormClosing und FormClosed ausgelöst werden.
So öffnen Sie ein anderes Formular als MdiParent mit dem aktuellen Formular:
FormChild formChild = new FormChild(); formChild.MdiParent = this; formChild.Show();
(Sie müssen den IsMdiContainer dieses Formulars auf True setzen)
3 .UserClosing
Der Benutzer schließt das aktuelle Programm manuell, indem er beispielsweise die Funktion Close() aufruft oder auf das „ד in der oberen rechten Ecke des Programms klickt. Der Grund für das Schließen ist CloseReason.UserClosing.
4. CloseReason.TaskManagerClosing
Dieses Ereignis wird ausgelöst, wenn das Fenster vom Task-Manager geschlossen wird. Beim Testen habe ich jedoch festgestellt, dass es für den Task-Manager obligatorisch ist, das Fenster zu schließen . Nach dem Festlegen des Haltepunkts können Sie feststellen, dass das Programm kurz nach Auslösen des FormClosing-Ereignisses vom Task-Manager zwangsweise geschlossen wird. Diese Zeit ist sehr kurz, daher ist es nicht geeignet, hier Dinge wie das Öffnen der MessageBox zu tun (weil es ist nutzlos).
5. CloseReason.FormOwnerClosing
ist ähnlich wie CloseReason.MdiFormClosing, wenn Formular A geschlossen wird, löst Formular B die Ereignisse FormClosing und FormClosed aus. ThisCloseReason.
Bezüglich der Ausgabe des Formulars als Eigentümer können Sie sich auf die MSDN-Seite beziehen:
https://msdn.microsoft.com/en-us/library/system.windows.window .owner(v =vs.110).aspx
So verwenden Sie das aktuelle Formular als Eigentümer, um ein anderes Formular zu öffnen:
FormChild formChild2 = new FormChild(); formChild2.Owner = this; formChild2.Show();
6. CloseReason.ApplicationExitCall
Anwendung aufrufen. Wenn die Exit()-Methode das Programm beendet, ist CloseReason dieser Wert.
Lassen Sie uns abschließend über die Aufrufsequenz der Ereignisse FormClosing und FormClosed sprechen:
1 Das Ereignis FormClosing wird ausgelöst, bevor das Formular geschlossen wird, und das Ereignis FormClosed wird ausgelöst, nachdem das Formular geschlossen wird .
2. Wenn Formular A ein MDI-Container ist und das übergeordnete MDI von Formular B Formular A ist, lautet die aufrufende Ereignissequenz:
Form B – FormClosing-Ereignis – CloseReason. MdiFormClosing
Fenster Form A – FormClosing-Ereignis – CloseReason.UserClosing
Form B – FormClosed-Ereignis – CloseReason.MdiFormClosing
Form A – FormClosed-Ereignis – CloseReason.UserClosing
3. Wenn Formular A der Eigentümer von Formular B ist, lautet die Reihenfolge der aufrufenden Ereignisse:
Form B – FormClosing-Ereignis – CloseReason.FormOwnerClosing
Form A – FormClosing-Ereignis – CloseReason.UserClosing
Form B – FormClosed-Ereignis – CloseReason.FormOwnerClosing
Form A – FormClosed-Ereignis – CloseReason.UserClosing

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Leitfaden zu Active Directory mit C#. Hier besprechen wir die Einführung und die Funktionsweise von Active Directory in C# sowie die Syntax und das Beispiel.

Leitfaden zum Zufallszahlengenerator in C#. Hier besprechen wir die Funktionsweise des Zufallszahlengenerators, das Konzept von Pseudozufallszahlen und sicheren Zahlen.

Leitfaden zu den Zugriffsmodifikatoren in C#. Wir haben die Einführungstypen von Zugriffsmodifikatoren in C# zusammen mit Beispielen und Ausgaben besprochen.

Leitfaden zur C#-Datenrasteransicht. Hier diskutieren wir die Beispiele, wie eine Datenrasteransicht aus der SQL-Datenbank oder einer Excel-Datei geladen und exportiert werden kann.

Leitfaden zur C#-Serialisierung. Hier besprechen wir die Einführung, die Schritte des C#-Serialisierungsobjekts, die Funktionsweise bzw. das Beispiel.

Leitfaden zu Mustern in C#. Hier besprechen wir die Einführung und die drei wichtigsten Arten von Mustern in C# zusammen mit ihren Beispielen und der Code-Implementierung.

Leitfaden zu Primzahlen in C#. Hier besprechen wir die Einführung und Beispiele von Primzahlen in C# sowie die Codeimplementierung.

Leitfaden zur Fakultät in C#. Hier diskutieren wir die Einführung in die Fakultät in C# zusammen mit verschiedenen Beispielen und Code-Implementierungen.
