我已經創建了一個.net 2.0窗口應用程序。此應用程序動態創建表單控件。現在,當我嘗試運行應用程序時,它會拋出一個異常「創建窗口句柄時出錯」。在此之後,應用程序就會掛起而沒有任何反應第一次,窗體得到正確顯示。在某個特定事件中,我試圖重新載入相同的表單,而那段時間我得到這個異常。任何人都知道如何擺脫這一點。 任何形式的幫助將會很棒:)創建窗口句柄時出錯
回答
我最近遇到了這樣的問題。
每個進程只有10,000個句柄的限制 - 如果您動態創建複雜的用戶界面,則很容易達到。
要檢查是否發生這種情況,請使用任務管理器 - 進入進程選項卡,打開「用戶對象」和「GDI對象」的列。然後,重現問題。
在我的情況下,USER對象的數量正好達到了10,000,然後「繁榮」。
如果這是您正在發生的事情,您需要確保在創建新表單之前妥善處理舊控件。您可能需要重新設計才能使用較少的手柄 - 這是我需要做的。
嗨貝文, 感謝您的答覆。我檢查了我的代碼,正如你所說的那樣,所有的控件都沒有妥善處理。我在我的表單上使用了SplitterControl的異常。因此,它正在打破流動。 現在,我正在做的是,我只是收集集合對象中的所有控件並強制處置它們中的每一個。 這工作正常,但由於表單通過其dispose()方法處理,我不確定這是否是處理控件的最佳方式。 – 2009-12-04 05:44:40
您需要確保您不會最終處理兩次控件;我建議使用Reflector來檢查'Control'的代碼,看看它的'Dispose()'方法是否通過從窗體中刪除控件來防止這種情況。 – Bevan 2009-12-04 07:23:35
- 1. 「創建窗口句柄時出錯」
- 2. 'System.OutOfMemoryException':創建窗口句柄時出錯
- 3. Win32Exception - 錯誤創建窗口句柄?
- 4. 錯誤創建窗口句柄
- 5. SQL Server 2008:創建窗口句柄時出錯
- 6. Win32Exception:創建窗口句柄時出錯(大量嵌套控件)
- 7. 什麼時候創建窗口句柄
- 8. 創建窗口句柄時出錯在單臺機器上拋出的異常
- 9. 在.NET MDI應用程序中創建窗口句柄時出錯
- 10. 錯誤使用C#創建窗口句柄
- 11. 如何找到win32異常源「創建窗口句柄錯誤」
- 12. 錯誤1400無效的窗口句柄
- 13. 窗口句柄和窗口尺寸
- 14. 我想創建矩陣效果,但我在窗體加載時出現錯誤(無效的窗口句柄)
- 15. Python pyautogui窗口句柄
- 16. 窗口句柄C#/。NET
- 17. 窗口的主句柄
- 18. 檢索Delphi窗口句柄
- 19. 得到窗口的句柄
- 20. 驗證Win32窗口句柄
- 21. GLUT本機窗口句柄
- 22. SendMessage函數窗口句柄
- 23. 獲取窗口句柄
- 24. MFC中的窗口句柄?
- 25. 如何在PowerShell中解決此錯誤?例外設置「Rtf」:「創建窗口句柄時出錯。」
- 26. 強制創建一個WPF窗口的本機Win32句柄
- 27. 調用或BeginInvoke可直到窗口句柄已創建
- 28. 的InvokeEvent:調用或BeginInvoke可直到窗口句柄已創建
- 29. 調用或BeginInvoke可直到窗口句柄已創建
- 30. 捕獲新創建的模式對話框的窗口句柄
發佈您的代碼。 '在一個特定的事件中,我試圖重新載入相同的表單,而那段時間我得到了這個異常。「聽起來你在事件處理程序中做錯了什麼。 – 2009-12-02 07:35:27