


Wie kann ich beim Schließen des Startformulars die Anwendungsschließung verhindern?
Bei mehreren Fenstern in der Anwendung kann die Anwendung eine Herausforderung sein, wenn die Anwendung endet, wenn das Startfenster geschlossen ist. In diesem Artikel wird der richtige Weg erörtert, um mit dieser Situation umzugehen.
vorläufiger Versuch
Zunächst können Sie versuchen, den folgenden Code zum Abschluss von Form1 zu verwenden und Formular 2: anzeigen
Wenn Form1 jedoch geschlossen ist, wird das Form2 geschlossen. Um dieses Problem zu überwinden, können Sie versuchen, Form1 zu verbergen, anstatt es zu schließen:
Form2 frm = new Form2(); frm.Show(); this.Close();Obwohl dies verhindern kann, dass Form2 geschlossen wird, erzeugt es einen neuen Nachteil: Wenn Form2 ausgeschaltet ist, wird die Anwendung nicht beendet.
<决> Lösung
Form2 frm = new Form2(); frm.Show(); this.Hide();
Um diese beiden Probleme zu lösen, besteht die Lösung darin, den Code in der Datei Programm.cs zu ändern, die die Anwendung der Anwendung in dieser Datei definiert. Durch Anpassen dieses Code können Sie die Anwendungsbeendigung verhindern, wenn Sie das Startfenster schließen.
Fügen Sie im folgenden geänderten Code das Ereignisverarbeitungsprogramm zum Startfenster hinzu, um das Schließereignis zu überwachen:
Wenn das Startfenster ausgeschaltet ist, wird das formclosedClosed -Ereignisverarbeitungsprogramm ausgelöst:
Diese Vorfallverarbeitung stellt sicher, dass die Anwendung nur dann beendet wird, wenn keine anderen Fenster vorhanden sind. Wenn das Fenster außerhalb des Startfensters geschlossen ist, aktualisiert das Ereignisverarbeitungsprogramm den Ereignishörer, um die Schließung des nächsten geöffneten Fensters zu überwachen.
[STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); var main = new Form1(); main.FormClosed += new FormClosedEventHandler(FormClosed); main.Show(); Application.Run(); }
Durch die Implementierung dieser Lösung können Sie jetzt das Startfenster schließen, ohne die Anwendung zu beenden, sodass andere Fenster den Aktivitätsstatus beibehalten und die Anwendung wie erwartet ausgeführt werden können.
Das obige ist der detaillierte Inhalt vonWie kann ich beim Schließen des Startformulars die Anwendungsschließung verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

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

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

Stock Market GPT
KI-gestützte Anlageforschung für intelligentere Entscheidungen

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)

Installac Compiler Likeg usepackAGeMaRaGerSordie-EntwicklungentoolsDendontheos.2.Writeac Programandsaveitwitha.Cppextesion

Der benutzerdefinierte Allocator kann verwendet werden, um das Speicherzuweisungsverhalten von C -Containern zu steuern. 1. Der Loggingallocator im Beispiel implementiert die Speicherbetriebsprotokollierung durch Überlastung, Zuordnung, Deallocation, Konstruktion und Zerstörung von Methoden; 2. Der Allocator muss Value_Type und Wiederherstellungsvorlagen definieren, um die Umwandlungsanforderungen des STL -Containertyps zu erfüllen. 3. Die Allokatorin löst die Protokollausgabe während der Konstruktion und Kopie aus, was für die Verfolgung des Lebenszyklus geeignet ist. 4. Die tatsächlichen Anwendungen umfassen Speicherpools, gemeinsamer Speicher, Debugging -Tools und eingebettete Systeme. 5. Seit c 17 kann konstruieren und zerstören können standardmäßig von std :: allocator_traits verarbeitet werden

Verwenden Sie die Funktion STD :: System (), um Systembefehle auszuführen, die Header-Dateien einbeziehen und in C-Style-Befehle wie STD :: System ("LS-L") eingeben müssen, und der Rückgabewert ist -1, was bedeutet, dass der Befehlsprozessor nicht verfügbar ist.

Erstellen Sie eine Projektverzeichnisstruktur, einschließlich cmakelists.txt, src/ und include/; 2. Schreiben Sie cmakelists.txt, geben Sie die CMAKE -Version, den Projektnamen, den C -Standard an und fügen Sie ausführbare Dateien hinzu. 3. Verwenden Sie MkDirbuild, um das Verzeichnis einzugeben und CMake auszuführen. Und CMake-Build. zur Zusammenstellung; 4. Fügen Sie mehrere Quelldateien über add_execable hinzu und verwenden Sie die Header -Dateipfad. 5. Verwenden Sie Find_Package, um externe Bibliotheken zu finden und mit target_link_libraries zu verknüpfen. 6.

TheautokeYwordletStheCompilerdeduciabletypesFrominitializer, reduzierverbosity undimpultingMainainability

Cs Stack ist ein Containeradapter in STL. Es folgt dem Prinzip des Back-in-First-Outs und muss Header-Dateien enthalten. Fügen Sie Elemente durch Push hinzu, Pop entfernt das obere Element und zugreift auf die Oberseite des Stapels. Überprüfen Sie vor der Operation, ob es leer ist, was häufig in Szenarien wie Expressionsbewertung und Backtracking verwendet wird.

Die Antwort besteht darin, eine Klasse zu definieren, die den erforderlichen Alias und Operationen enthält. Setzen Sie zunächst Value_Type, Referenz, Zeiger, Differenz_Type und Iterator_Category, und implementieren Sie dann Dereferenz-, Inkrement- und Vergleichsvorgänge. Geben Sie schließlich die Methoden von Beginn () und End () im Container zur Rückgabe der Iteratorinstanz an, sodass sie mit STL -Algorithmen und Reichweite für Schleifen kompatibel ist.

Eine abstrakte Klasse ist eine Klasse, die mindestens eine reine virtuelle Funktion enthält. Es kann nicht instanziiert werden und muss als Basisklasse vererbt werden. Die abgeleitete Klasse muss alle reinen virtuellen Funktionen implementieren, ansonsten wird sie immer noch eine abstrakte Klasse sein. 1. reine virtuelle Funktionen werden nach virtuellen Rückgabetyp -Funktionsname () = 0 deklariert; Schnittstellenspezifikationen definieren; 2. Abstrakte Klassen werden häufig für ein einheitliches Schnittstellendesign wie Area (), Draw () usw. verwendet, um polymorphe Aufrufe zu implementieren. 3.. Virtuelle Zerstörer müssen für abstrakte Klassen (z. B. virtuell ~ shape () = Standard;) bereitgestellt werden, um sicherzustellen, dass abgeleitete Klassenobjekte durch Basisklassenzeiger korrekt freigegeben werden. V. 5.
