【问题标题】:WeifenLuo DockPanel Suite Form Freeze on CloseWeifenLuo DockPanel Suite 表单在关闭时冻结
【发布时间】:2015-07-03 15:33:32
【问题描述】:

最近我决定在我的 VB.NET 应用程序中实现 WeifenLuo DockPanel Suite。一切正常,直到您尝试关闭应用程序,然后它会冻结。什么都没有发生。

我试过了:

  • 关闭前处理 DockPanel
  • 使用 Application.Exit()
  • 关闭前的RunningApplication.DoEvents()
  • 在关闭之前关闭所有打开的 DockPanel 表单。
  • 在 Visual Studio 调试器之外运行应用程序。
  • 将 Visual Studio 设置为以 x86 而非 AnyCPU 为目标
  • 升级/下载 DockPanel Suite 框架版本

仍然什么都没有,仍然只是冻结。

输出显示以下消息:

The thread 0x1f34 has exited with code 259 (0x103).
The thread 0x22b8 has exited with code 259 (0x103).

每次线程名称都不同。但是我没有任何线程在运行。

这只发生在带有 DockPanel 的表单上。

有什么想法吗?我在网上找不到其他人遇到这个问题,这真的很令人沮丧。

谢谢。

【问题讨论】:

  • 所以它可以在最简单的例子上重现吗?就像,创建新项目,引用 DPS,将停靠面板添加到 form1 并运行项目。它会崩溃吗?如果没有,你在用 Dockpanel 做什么?您的关机程序包括哪些代码?我正在使用 DPS,它工作正常,所以你正在做一些使它无法工作的事情,如果你不告诉我们你首先做了什么,我们就无法知道它是什么 :-)

标签: vb.net forms freeze dockpanel dockpanel-suite


【解决方案1】:

在我的应用程序的表单关闭事件中,我使用以下方法遍历 DockPanel 中所有打开的文档:

While i < DockPanel1.ActiveDocumentPane.Contents.Count
        Dim dockContent As IDockContent = DockPanel1.ActiveDocumentPane.Contents(i)
        dockContent.DockHandler.Close()
End While

这就是导致应用程序冻结的原因。为了解决这个问题,我将代码替换为:

For Each item As DockContent In DockPanel1.Documents
        item.DockHandler.Close()
Next

【讨论】:

    猜你喜欢
    • 2012-01-30
    • 1970-01-01
    • 1970-01-01
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多