2015-04-24 92 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