虽然VS为我们提供了很多控件可以使用,但有时候这些控件仍然不能满足我们的要求,比如我们要对部分控件进行一些个性化的定制,例如美化控件,这时候就需要自己绘制控件,或是在原有控件的基础上进行修改
自定义控件分为三种
1、组合控件(CompositeControls):在原有控件的基础上根据需要进行组合
2、扩展控件(ExtendedControls):继承自原有控件,添加一些新的属性和方法,绘制一些新元素
3、自定义控件(CustomControls):控件的绘制全部由用户定义
1、组合控件
新建项目,拖入需要的控件,就像在窗体一样
在生成的目录可以找到相应的控件库文件CompositeControl.dll
2、扩展控件
首先,添加一个类库
3、自定义控件
接下来是把控件库引入到项目中使用
如果项目和控件库项目在同一解决方案中的话,控件会自动引入到工具箱
自定义控件分为三种
1、组合控件(CompositeControls):在原有控件的基础上根据需要进行组合
2、扩展控件(ExtendedControls):继承自原有控件,添加一些新的属性和方法,绘制一些新元素
3、自定义控件(CustomControls):控件的绘制全部由用户定义
1、组合控件
新建项目,拖入需要的控件,就像在窗体一样
![](http://pic002.cnblogs.com/images/2012/445476/2012120922300278.png)
编译生成,可以查看控件的外观
![](http://pic002.cnblogs.com/images/2012/445476/2012120922322943.png)
在生成的目录可以找到相应的控件库文件CompositeControl.dll
2、扩展控件
首先,添加一个类库
引用两个命名空间 System.Drawing 和 System.Windows.Forms ,类改名为为ButtonEx,继承自Button
注意,扩展控件编译生成后并不能调用可视化工具查看,只生成了dll文件,需要引入到项目中使用才能看到
3、自定义控件
自定义控件添加方法跟扩展控件一样,只是最后类是继承自Control类的
![](http://pic002.cnblogs.com/images/2012/445476/2012120922460755.png)
接下来是把控件库引入到项目中使用
如果项目和控件库项目在同一解决方案中的话,控件会自动引入到工具箱
![](http://pic002.cnblogs.com/images/2012/445476/2012120922515287.png)
如果在不同项目中
![](http://pic002.cnblogs.com/images/2012/445476/2012120922574973.png)
浏览 选择库文件,然后将该控件打钩
![](http://pic002.cnblogs.com/images/2012/445476/2012120922582311.png)
将控件拖到窗体中
![](http://pic002.cnblogs.com/images/2012/445476/2012120922594294.png)