WinForm组件开发:构造ImageButton控件

.NET自带的Button按钮和PictureBox在做某种特效的时候很难控制,除了调节属性之外,还要写代码,是不是很麻烦。如果你的开发团队让你构造一个Button组件,来换掉.NET自带的哪个Button,这篇文章将引导你实现这个需求。
先看下我们要开发的这个IamgeButton的功能:
1,支持属性窗口。
2,提供ButtonText,ButtonImage,MouseOverImage,MouseClickImage四个属性来实现我们要的特效。
特效阐述:我只需要设置上面的四个属性,不写一行代码就可以实现ImageButton的动态效果,默认ImageButton的显示图片是ButtonImage这个的属性设置的。当鼠标移动到这个按钮上时会产生动态效果,从而切换到另一张图片,这是MouseOverImage属性的功能。当你点击按钮时候,就会切换到另一张图片,实现动态效果,这个是MouseClickImage属性实现的。
3,上面四个属性都放在了属性窗口的“重要属性”项中。
4,支持普通Button的功能。
这个按钮可以加快你的项目进度,再也不为.NET提供的单调的Button花时间去控制它的样式。
组件下载地址:LT.WinForm.ImageButton.dll
组件演示项目:TestImageButton.rar
演示图片:


当鼠标移动到登录或者退出按钮上时,背景效果就会变成下图:

当鼠标单击登录或者退出按钮时,背景效果就会变成下图:

当鼠标离开登录或者退出按钮时候,背景效果就会变成默认的图片:


ImageButton的实现思想:
ImageBoutton总体上是通过继承UserControl类,结合Lable和PictureBox控件来构造的。实现了Lable和PictureBox的5个鼠标事件,重写了单击事件。其中的一个难点就是怎么实现单击事件和Lable的永远在最中间显示。四个属性的实现难度不大,但配合PictuerBox实现图片的切换的确有点难度。

注:ImageButton组件已经在几个项目使用过,请大家放心使用和扩展。
源代码下载地址:LT.WinForm.ImageButton

如果你看过源代码,有什么好的建议,请反馈给我,谢谢。

posted @ 2008-04-04 15:08  李涛  阅读(16446)  评论(18编辑  收藏  举报