我已經創建了一些控件,從我的Winform應用程序的UserControl繼承。根據需要,它們都有無參數的構造函數。當我將它們拖放到主表單上時,我在設計時在Visual Studio中出現錯誤,無法呈現表單。如何停止Visual Studio在我的UserControl中生成Setter調用?
我發現那是什麼,在表單的Designer.cs文件中,在我的控制被實例化時,IDE被放置網上有調用我的制定者之一。 BlockKey = 0
。那麼,setter背後的代碼正在調用其他代碼,並且很快就會拋出NullReferenceException,因爲表單沒有運行;其他代碼不準備在這一點上產生任何東西。
如果我手動刪除二傳手線,錯誤消失。但是關閉並重新打開,或者重新編譯,IDE會重新打開這條線。我嘗試着在UserControl內部裝飾[DefaultValue(false)]
的裝飾器,認爲這樣可以抑制對setter的設計時調用,但是它沒有。
如何才能擺脫在設計這一行的?或者我希望在代碼中寫入一些預防性代碼?
順便說一下,'DefaultValue'屬性是設計器的屬性窗口將用來啓用右鍵單擊重置功能。 – Reddog 2011-04-20 18:26:49
這裏有更多的手動ShouldSerialize方法DOCO - http://msdn.microsoft.com/en-us/library/53b8022e(v=vs.71).aspx – Reddog 2011-04-20 18:29:19
是有方法相似的地方?在我的構造函數中,我調用了另一個方法,該方法將數據傳遞到數據庫以填充組合框。這次電話會再次在設計階段崩潰。這方面的最佳做法是什麼? – 2011-04-21 16:09:28