.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

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

转载于:https://www.cnblogs.com/terryli/archive/2008/04/04/1137453.html

WinForm组件开发:构造ImageButton控件相关推荐

  1. 分享-WinForm界面开发之布局控件WeifenLuo.WinFormsUI.Docking的使用

    分享自伍华聪的-WinForm界面开发之布局控件"WeifenLuo.WinFormsUI.Docking"的使用 本篇介绍Winform程序开发中的布局界面的设计,介绍如何在我的 ...

  2. WinForm界面开发之布局控件WeifenLuo.WinFormsUI.Docking的使用

    控件下载地址(开源) http://sourceforge.net/projects/dockpanelsuite/ 原文:http://www.cnblogs.com/wuhuacong/archi ...

  3. WinForm界面开发之布局控件“WeifenLuo.WinFormsUI.Docking“的使用

    本篇介绍Winform程序开发中的布局界面的设计,介绍如何在我的共享软件中使用布局控件"WeifenLuo.WinFormsUI.Docking". 布局控件"Weife ...

  4. C#WinForm开发笔记——基本控件(二)

    C#学习笔记--WinForm开发 一.控件 1.WebBrowser 1>属性 2.ComboBox 1>属性 2>事件 3.ListBox 1>属性 2>事件 4.P ...

  5. Qt界面开发(各种控件以及图表)

    Qt界面开发(各种控件以及图表) 1.Qt简洁窗体 源代码链接:点击打开链接 2.QT漂亮界面 源代码链接:点击打开链接 3.音乐播放器界面 源代码链接:点击打开链接 4.六宫格界面 源代码链接:点击 ...

  6. 『安卓』安卓开发基础--基本控件

    1. Textview 显示文字,相当于Panel.一般用来文本展示,继承自android.view.View,在android.widget包中. <TextView//控件id androi ...

  7. mysql抽屉图标_React Native自定义组件实现抽屉菜单控件效果

    一.需求分析 原生开发中,自定义View可谓是屡见不鲜的事情,往往系统的控件总不能满足现实的需求.五花八门的产品设计需要我们做出不同的View.关于自定义View的内容网上已经有很多的博文,本篇博客要 ...

  8. WinForm的延时加载控件概述

    这篇文章主要介绍了WinForm的延时加载控件,很实用的技巧,在C#程序设计中有着比较广泛的应用,需要的朋友可以参考下 本文主要针对WinForm的延迟加载在常用控件的实现做简单的描述.在进行C#项目 ...

  9. 组件、插件、控件的区别

    控件:是编程中用到的,按钮就算是一个控件,窗口也是等等 组件:是软件的一部分.软件的组成部分. 插件:网页中用到的,flash插件,没有它浏览器不能播放flash. 首先范围最广的应该是组件,英文co ...

最新文章

  1. 01-JDBC学习手册:JDBC概述之JDBC发展、API、驱动
  2. 征战蓝桥 —— 2014年第五届 —— C/C++A组第1题——猜年龄
  3. php mysql 写法_php 类的写法
  4. 使用java实现rfc3161,openssl验证用自签名证书签名的RFC3161时间戳
  5. css下拉点击不动,CSS3 - 进行简单的点击下拉[关闭](CSS3 - Making a simple click-dropdown [closed])...
  6. C3P0连接池详细配置
  7. 怎么用python输入计算公式_如何从python3中的用户输入计算min和max
  8. Dart 基礎 - 3
  9. 软件行业正面临一场新的变革——SaaS软件
  10. Ruby On Rails和locomotiveCMS安装经历
  11. 5角星画法 android,Android Canvas绘制正多边形和正多角星
  12. BurpSuite-Collaborator插件介绍 附最新burp破解版地址
  13. python 东方财富接口_Python从东方财富网站获取数据,python,的
  14. 微信小程序云开发之云数据库查询及动态输入
  15. centos7 nvidia显卡安装
  16. STM32跑马灯实验的基本步骤(库函数)
  17. 解决viewer.js预览PDF文件 无法展示PDF水印的问题
  18. Win7/Win10双系统安装方法图文教程
  19. 手机端自适应遇到的问题 页面缩放不正常(使用的是flexible.js)
  20. 软件测试工程师这个岗位职责是什么?具体都需要干什么?

热门文章

  1. testng 定时构建_Jenkins使用安装:持续集成自动化方案 | Web自动化测试方案
  2. java高淇_高淇java300集JAVA常用类作业
  3. shell编程1到10求和_重磅|郑州市第四届中小学创意编程暨智能设计大赛初中组真题解析(下)...
  4. mysql的存储引擎种类,mysql 存储引擎,基本数据类型
  5. mysql query 查询失败_如何在mysql进行查询缓存及失败的解决方法
  6. python分片是什么_python中的分片
  7. 记录一下MATLAB中ode45函数求解非刚性微分方程
  8. php怎么获取手机屏,使用PHP获得屏幕分辨率
  9. rfc垮端口 sap_SAP扫盲系列之二:SAP ABAP应用服务器的组成部分
  10. Spring MVC GET 从客户端数据到服务器端的乱码和服务器端数据到客户端的乱码