2015-04-24 59 views
0

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

我想:

  • 的DockPanel中的处置收
  • 关闭之前关闭所有打开的DockPanel中形成前关闭
  • 使用Application.Exit()
  • RunningApplication.DoEvents()前。
  • 在Visual Studio Debugger之外运行应用程序。
  • 设置Visual Studio的目标,而不是86的AnyCPU
  • 升级/下载DockPanel中套房Framework版本

但仍然一无所获,T仍只是冻结。

输出显示以下消息:

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

随着线程名称是不同的各一次。但是我没有任何线程在运行。

这只发生在带有DockPanel的窗体上。

有什么想法?我在网上找不到这个问题的任何人,这真的令人沮丧。

谢谢。

+0

因此它可以在一个最基本的例子中重现吗?像,创建新项目,引用DPS,将一个dockpanel添加到form1并运行该项目。它会崩溃吗?如果没有,那么你在使用Dockpanel做什么?您的关机程序包含哪些代码?我正在使用DPS并且工作正常,所以您正在做一些事情,使其无法正常工作,如果您不首先告诉我们您做什么,我们无法知道它是什么:-) – Jens

回答

0

在我的应用程序的形式结束活动,我通过在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