Maison >développement back-end >C++ >Comment maintenir une application Windows Forms en cours d'exécution après la fermeture du formulaire de démarrage?
L'application est arrêtée pour se terminer lorsque la fenêtre de départ est fermée
En l'absence de plusieurs fenêtres, la fenêtre de démarrage (Form1) est fermée lorsqu'une autre fenêtre (form2) s'affiche. L'objectif est de maintenir l'exécution de l'application même après la fermeture du formulaire1.
Réponse:
Le problème est le comportement par défaut du thread d'application principal. Pour résoudre ce problème:
Modifiez le code dans programme.cs pour surveiller l'événement de clôture de la fenêtre:
<code class="language-csharp">[STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); var main = new Form1(); main.FormClosed += new FormClosedEventHandler(FormClosed); main.Show(); Application.Run(); }</code>
<code class="language-csharp">static void FormClosed(object sender, FormClosedEventArgs e) { ((Form)sender).FormClosed -= FormClosed; if (Application.OpenForms.Count == 0) Application.ExitThread(); else Application.OpenForms[0].FormClosed += FormClosed; }</code>Lors de la fermeture du formulaire 1, il supprimera le programme de traitement des événements FormClosé et joignera l'événement à la prochaine fenêtre ouverte.
S'il n'y a plus de fenêtres ouvertes, l'application est terminée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!