前面的一些文章绝大部分都是要讲控件的设计时的行为,既然涉及到这么多的设计时行为的代码编写,那么就有必要就一下如何来调试控件的设计行为。
调试控件的设计时行为和调试 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 ”,你可以根据自己的情况选择。如下图:
![r_DebugControlDesignTime.JPG](https://images.cnblogs.com/cnblogs_com/guanjinke/77957/r_DebugControlDesignTime.JPG?x-oss-process=image/resize,w_1400/format,webp)
在设置完以后工程属性以后,在需要调试的地方设置断点,然后点击 F5 或者点击工具栏的运行按钮。当点击以后, visual studio 会运行起来,在运行起来的 Visual studio 里面打开一个应用你这个 Assembly 的工程,在这个工程里切换到 Form 设计器界面,选中你的控件,然后编辑你所要调设的功能,比如,你要调试一个控件的属性的 Editor ,你在这个 editor 类里设置断点,接着在属性浏览器里编辑这个属性,程序就会停在你设置的断点。
调试控件的设计时行为和调试 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.cnblogs.com/guanjinke/archive/2007/01/23/628311.html,如需转载请自行联系原作者