【发布时间】:2015-03-11 06:56:26
【问题描述】:
Form1.cs 中的代码:其中,我隐藏了 Form1.cs 然后显示了 Form2.cs
private void Form1_Load(object sender, EventArgs e)
{
this.Hide();
Form2 f2 = new Form2();
f2.Show();
}
Form2.cs 中的代码:其中,我隐藏了 Form2.cs 并尝试再次显示 Form1.cs 然后 Error 创建窗口句柄 出现在运行时。
private void Form2_Load(object sender, EventArgs e)
{
this.Hide();
Form1 f1 = new Form1();
f1.Show();
}
【问题讨论】:
-
您正在创建 Form1 的 new 实例。这让 Form1_Load 事件再次触发。它创建了一个新的 Form2 实例,因此 Form2_Load 事件再次触发。这会创建 Form1 的新实例,因此 Form1_Load 事件会再次触发。这会创建 Form2 的新实例,因此 Form2_Load 事件会再次触发 which .... repeat ... repeat ... Kaboom!
-
谢谢,你就像个剖析师哈哈哈。