You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关闭表单返回前页时重复创建表单实例问题咨询

问题分析与解决方案
  • 问题根源:和ResumeLayout事件完全无关,不需要处理这个事件。你遇到的重复创建表单实例的问题,是因为在Reports_FormClosing事件里每次都新建Dashboard实例并显示,导致关闭Reports时就生成一个新的Dashboard窗口,最终出现大量重复窗口。

  • 解决方案:

    • 不要新建Dashboard实例,而是回到已存在的原Dashboard窗口。比如在打开Reports时传递原Dashboard的引用:
      // 在Dashboard中打开Reports的代码
      Reports reportsForm = new Reports();
      reportsForm.Owner = this; // 将当前Dashboard设为Reports的父窗口
      reportsForm.Show();
      this.Hide(); // 隐藏原Dashboard而非关闭
      
      然后修改Reports的FormClosing事件代码:
      private void Reports_FormClosing(object sender, FormClosingEventArgs e)
      {
          this.Owner.Show(); // 显示原Dashboard窗口
          this.Close();
      }
      
    • 如果需要确保全局只有一个Dashboard实例,可以采用单例模式,或者程序启动时就创建Dashboard作为主窗口,后续仅通过Show/Hide控制显示状态,避免重复实例化。

内容的提问来源于stack exchange,提问作者Steven T

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 10:15:36