【问题标题】:Form Hangs when Closing, Minimizing, or Maximizing关闭、最小化或最大化时表格挂起
【发布时间】:2011-12-13 23:10:50
【问题描述】:

我有一个 c# Windows 窗体应用程序,可以在大多数机器上完美运行。但是有些机器在关闭子窗体(不是 MDI 应用程序)时,整个应用程序会挂起几秒钟,直到窗口关闭。这仅在单击右上角的“X”按钮时发生。如果我在表单上有一个只调用this.Close(); 的按钮,则窗口会很好地关闭。我有大约 20 台机器可以正常工作,但到目前为止我已经看到 2 台出现此问题(一台是 Windows 7,另一台是 XP)。如果我在这些机器上运行 Visual Studio 中的代码,窗口确实可以正常关闭。它仅在从 EXE 运行时发生。关闭应用程序的主窗体时没有挂起。只是孩子的形式。我只是在使用

Form1 f = new Form1();
f.Show();

打开窗口。我已经在同一个应用程序中没有代码的空白测试表单上尝试过这个,并且发生了同样的事情。对于同一台计算机上的其他 Windows 窗体应用程序,不会出现此问题。此应用程序有一些特定的原因导致此问题,但我无法缩小范围。我知道这是一个很难在没有看到整个代码库的情况下回答的问题,但是过去有没有其他人遇到过类似的问题?谢谢。

编辑:一些附加说明

当单击最小化、最大化和恢复按钮中的任何一个时,它们都会导致相同的挂起。

有趣的是,如果您单击左上角的窗口图标并选择关闭、最小化或最大化,这些都可以正常工作,没有延迟或挂起。

【问题讨论】:

  • 调用Show 只会将Visible 设置为true。单击X 按钮和调用Close 都会引发Closing 事件——这里没有区别。您是否尝试过将一个简单的应用程序与一个主窗体、几个子窗体和主窗体上的关闭按钮组合在一起?

标签: c# winforms


【解决方案1】:

确保在您的表单关闭事件上放置

Application.Exit(); //use to stop application processes

打开您的任务管理器,然后转到进程选项卡,检查您的应用程序是否会导致大量 CPU 使用。也许您的应用程序的实例仍在运行。

问候

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-04
    • 2011-03-13
    • 2016-10-04
    • 1970-01-01
    • 2013-02-05
    • 2018-04-02
    • 1970-01-01
    相关资源
    最近更新 更多