Afficher le formulaire principal après une connexion réussie sans quitter l'application
Dans les applications Windows Forms, la fermeture du formulaire principal termine généralement le programme. Cependant, dans certains cas, vous devrez peut-être fermer le formulaire de connexion et lancer le formulaire principal sans terminer l'application. Cet article explore ce problème et propose une solution.
Question :
Un utilisateur crée un projet Windows Forms qui contient deux formulaires : un formulaire de connexion et un formulaire principal. Après une connexion réussie, l'objectif est de fermer le formulaire de connexion et d'afficher le formulaire principal. Cependant, la fermeture du formulaire de connexion à l'aide de la méthode Close() n'ouvre pas le formulaire principal et l'application se termine.
<code class="language-c#">public void ShowMain() { if (auth()) { var main = new Main(); main.Show(); this.Close(); } else { MessageBox.Show("Invalid login details."); } }</code>
Solution :
Le problème est que la fermeture du formulaire de connexion ferme également l'application. La solution consiste à déplacer la logique de connexion du formulaire de connexion vers le fichier Program.cs. Ensuite, lancez le formulaire principal après une connexion réussie à l'aide de Application.Run().
<code class="language-c#">static void Main() { LoginForm fLogin = new LoginForm(); if (fLogin.ShowDialog() == DialogResult.OK) { Application.Run(new MainForm()); } else { Application.Exit(); } }</code>
Dans Program.cs, créez et affichez un formulaire de connexion modal (fLogin) sous forme de boîte de dialogue. Si l'utilisateur fournit des informations d'identification valides, ShowDialog() renverra DialogResult.OK, déclenchant la création d'une nouvelle instance MainForm via Application.Run(). Sinon, l'application se fermera (Application.Exit()).
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!