前面的一些文章絕大部分都是要講控件的設計時的行為,既然涉及到這麼多的設計時行為的代碼編寫 ,那麼就有必要就一下如何來調試控件的設計行為。
調試控件的設計時行為和調試DLL的方式非常的相似,因為DLL是不能夠單獨運行的,而一般的控件也 會在一個DLL裡。當然如果你不考慮類的可復用性而把控件寫在一個Windows Application裡面也無可厚非 ,這樣調試倒也變的簡單了。但是我們還是要考慮更通常的情況。一般來說,我們調試DLL時,都是創建 一個可獨立運行的應用程序,在這個應用程序裡引用你希望調試的DLL工程,在DLL工程的代碼裡設置斷點 ,然後調試。所以,調試這一類東西,首要的問題就是找到一個調用它的宿主。調試控件的設計時行為什 麼樣的宿主最好呢,當然是Visual studio了,visual studio裡提供了非常全面的設計時支持。下來我就 來演示一下具體的做法。
首先將你要測試的控件所在的工程設為啟動工程。在Solution Explorer裡右鍵點擊控件所在的工程, 在菜單裡選擇屬性(Properties)進入工程屬性設置界面,點擊“Debug”頁面,將Start Action 選為“ Start External Program”,接下來點擊後邊的選擇按鈕選中你的Visual Studio的可執行程序,我的 Visual Studio程序位於“D:\Program Files\Microsoft Visual Studio 8\Common7\IDE\devenv.exe”, 你可以根據自己的情況選擇。如下圖:
在設置完以後工程屬性以後,在需要調試的地方設置斷點,然後點擊F5或者點擊工具欄的運行按鈕。 當點擊以後,visual studio會運行起來,在運行起來的Visual studio裡面打開一個應用你這個Assembly 的工程,在這個工程裡切換到Form設計器界面,選中你的控件,然後編輯你所要調設的功能,比如,你要 調試一個控件的屬性的Editor,你在這個editor類裡設置斷點,接著在屬性浏覽器裡編輯這個屬性,程序 就會停在你設置的斷點。
今天我也把寫前面的文章的時候用到的源碼附上,方便朋友們使用。
本文配套源碼:http://www.bianceng.net/dotnet/201212/783.htm