我正在使用MS Visual C#编写WindowsForms应用程序,需要两个表单相互引用。在测试时,我在Form1上创建了两个按钮--一个按钮显示Form2,另一个按钮隐藏Form2(代码如下)。
我想为Form2做同样的事情--创建两个按钮来隐藏或显示Form1。我使用了与Form1相同的方法,但是当我编译应用程序时,似乎陷入了一个无限循环中,并出现StackOverflow消息。
我该如何更改代码,使得两个表单能够相互引用?
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 代码:
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;
}
}
}