Maison >développement back-end >C++ >Comment ouvrir correctement un nouveau formulaire et fermer le formulaire actuel en C# ?

Comment ouvrir correctement un nouveau formulaire et fermer le formulaire actuel en C# ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-06 13:17:39728parcourir

How to Properly Open a New Form and Close the Current Form in C#?

Comment ouvrir un nouveau formulaire et fermer le formulaire actuel en C#

Lors du développement d'applications C#, vous pouvez rencontrer des situations où vous devez ouvrez un nouveau formulaire à partir d'un bouton du formulaire actuel, fermez le formulaire actuel et concentrez-vous sur le formulaire nouvellement ouvert. Voici comment y parvenir :

Solution de Steve

Une approche courante consiste à utiliser le code suivant :

private void Button1_Click(object sender, EventArgs e)
{
    var form2 = new Form2();
    form2.Show();
    this.Close();
}

Cependant, cette solution a un défaut. Lorsque this.Close() est appelé, le formulaire actuel et le formulaire nouvellement ouvert (form2) sont supprimés. Pour éviter cela, vous devriez envisager de masquer le formulaire actuel au lieu de le fermer.

Solution corrigée

Pour ouvrir un nouveau formulaire et fermer le formulaire actuel, utilisez ce qui suit code :

private void OnButton1Click(object sender, EventArgs e)
{
    this.Hide();
    var form2 = new Form2();
    form2.Closed += (s, args) => this.Close();
    form2.Show();
}

Dans cette solution corrigée :

  • this.Hide() masque le courant form.
  • Une nouvelle instance Form2 (form2) est créée et affichée.
  • Un gestionnaire d'événements est ajouté à l'événement Closed de form2. Ce gestionnaire d'événements appelle this.Close() lorsque form2 est fermé, garantissant que le formulaire actuel est fermé uniquement après la fermeture du nouveau formulaire.

Cette approche garantit que le nouveau formulaire (Form2) est ouvert et focalisé, tandis que le formulaire actuel (Form1) est masqué puis fermé.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn