我正在MS Visual C#中編寫一個WindowsForms應用程序,並且我需要兩個窗體才能夠互相引用。在我測試時,我在Form1上創建了兩個按鈕 - 一個顯示Form2的按鈕和另一個隱藏它的按鈕(代碼如下)。C# - 如何使兩個表單互相引用
我想爲Form2做同樣的事情 - 創建兩個隱藏或顯示Form1的按鈕。我使用了與Form1相同的方法,但是當我編譯應用程序時,它似乎陷入了無限循環,並且出現了StackOverflow消息。
我該如何更改代碼,以便兩種表單都能夠互相引用?
Form 1代碼:
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;
}
}
}
您應該爲您的控件。 – SLaks
Form1和Form2構造函數在無限循環中互相調用。 – Odrade