C# - Comment faire de deux formes font référence les uns aux autres

Je suis en train d'écrire un WindowsForms application en MS Visual C#, et j'ai besoin de deux formes afin de pouvoir référencer les uns des autres. Comme je l'ai tester, j'ai créé deux boutons sur Form1 -- un bouton qui affiche Form2 et un autre bouton que le masque (le code est ci-dessous).

Je veux faire la même chose pour le Formulaire2 -- créer deux boutons de cacher ou d'afficher Form1. J'ai utilisé la même méthode que j'ai utilisée pour Form1, mais quand je compile l'application, il semble être pris dans une boucle infinie et je reçois un StackOverflow message.

Comment puis-je changer le code de sorte que les deux formes sont en mesure de référencer les uns des autres?

De code de Form1:

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
    Form2 frm2;
    public Form1()
    {
        InitializeComponent();
        frm2 = new Form2();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        frm2.Visible = false;
    }

    private void button2_Click(object sender, EventArgs e)
    {
        frm2.Visible = true;
    }
}
}

Form2 code:

namespace WindowsFormsApplication1
{
public partial class Form2 : Form
{
    Form1 frm1;
    public Form2()
    {
        InitializeComponent();
        frm1 = new Form1();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        frm1.Visible = false;
    }

    private void button2_Click(object sender, EventArgs e)
    {
        frm1.Visible = true;
    }
}
}
Vous devriez nom de votre contrôle.
La Form1 et Form2 constructeurs appellent les uns les autres dans une boucle infinie.

OriginalL'auteur andrewl85 | 2011-09-01