2011-08-10 34 views
8

以下是我的問題: 我的Windows窗體項目中有一個自定義UserControl。我可以在設計師中設計好。但只要我想編輯包含控件Visual Studio 2010崩潰的窗體。在設計模式下打開包含用戶控件的窗體時,Visual Studio 2010崩潰

據我所見,構造函數和控件的加載事件是在加載表單時執行的。

我試過使用VS2010的另一個實例來調試設計器,但找不到執行execption的位置。

起初,我的問題似乎是,對於Threading.Timer對象,我用它來初始化我的對象(即從數據庫等裝載值(錯誤再嘗試以後的方法;))),回調函數由設計人員執行,因此它試圖訪問在設計模式下無法訪問的對象。 Threading.Timer對象的初始化位於Load-Event中。但即使我評論了所有的負載事件後(除了一個嘗試catch塊一個Debugger.Break()調用在第二個實例VS2010斷點來調試設計器)Visual Studio不斷崩潰,只要我想編輯包含控制在設計模式。

我嘗試了一些步驟,我發現這裏沒有回答我的問題:User control always crashes Visual Studio

所以,即使設計師沒有任何解析負載事件或構造函數時做的。它仍然崩潰。

有人知道我能做些什麼來防止Visual Studio在窗體設計器中崩潰並正確顯示用戶控件嗎?

包含usercontrol的項目也引用一些自定義庫和庫項目。我不知道問題可能與此有關。

+0

相關問題...以及適用於我的答案:另請參見http://stackoverflow.com/a/3578917/492 –

回答

3

莫名其妙地解決我自己的問題......試圖調試設計模式,我騙自己

不知何故。

設置一個Debugger.Break()在負載事件,而試圖打開包含在設計模式中,用戶控制的形式非常糟糕的主意,因爲如果你不進行調試Visual Studio中的另一個實例Visual Studio然後Debugger.Break()將停止應用程序,並因此崩潰Visual Studio實例。

最後,通過使用用戶控件的DesignerMode屬性,我能夠阻止設計者執行線程的初始化。定時器對象可以通過這種方式解決問題。

0

我有同樣的問題(VS 2005),標記的答案也沒有爲我工作。我終於可以通過刪除我的解決方案中的「obj」和「bin」文件夾來解決問題,然後在發佈模式下重新構建項目。我希望這可以幫助任何有此問題的人。

0

在我的問題,整個解決方案每次我打開它的時候墜毀由於設計模式打開有罪文件每次我打開該解決方案的時間,從而導致整個解決方案的崩潰,它可能已造成用戶控件,但我無法訪問解決方案來解決。

所以我找到了一個讓我重新回到我的編碼的另一種方式。它不涉及深入調試系統事件,我認爲它可以幫助所有級別的用戶,因此發佈。

我在解決方案之外打開aspx文件,實際上只是前端代碼文件,可以在記事本或包括VS的任何文本編輯器中完成。 註釋掉所有代碼(java代碼並不重要,因爲沒有什麼東西叫它) 保存文件並關閉。 重新打開解決方案。 即使設計師視圖打開,但這次並沒有崩潰,因爲沒有任何可處理的內容。 然後我取消了部分代碼的註釋,不同數量的代碼,20行,100行......每次回到設計器視圖來檢查它是否會崩潰。 當我完成(沒有崩潰!)我能夠從我離開的地方繼續。 希望它有幫助!

相關問題