【问题标题】:Windows Forms Application - Error creating window handleWindows 窗体应用程序 - 创建窗口句柄时出错
【发布时间】: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!
  • 谢谢,你就像个剖析师哈哈哈。

标签: c# winforms forms


【解决方案1】:
  • 加载 Form1 时,您会显示一个新的、额外的 Form2。
  • 在加载 Form2 时,您会显示一个新的、额外的 Form1。

这是一个圆圈。它以最快的速度创建新的表单,每个 Form1 一个 Form2,每个 Form2 一个新 Form1,然后它再次开始循环,直到没有更多的窗口句柄可以创建新窗口。

我不太确定您想要做什么,但这不是这样做的方法。描述您想做什么,也许我们可以提供帮助。

【讨论】:

  • 我正在创建一个应用程序,该应用程序将转到“MainForm”,然后最终将加载/检查“LicenseForm”;如果License成功,我会回来显示“Mainform”并隐藏License表单。嗯,谢谢,我现在明白了。
猜你喜欢
  • 2011-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-30
  • 2013-06-02
  • 2017-09-25
相关资源
最近更新 更多