当前位置:网站首页>C# WinForm系列-Button简单使用
C# WinForm系列-Button简单使用
2022-07-06 09:33:00 【心蓝168】
本系统实例适合初学者,老手请直接Pass吧。
上一次演示了【创建Windows项目】,希望初学者能爱上C# WinForm编程。
只因本人是一名程序员,文档能力有限,直接进入主题吧。本节简单的WinForm中Button的使用或如何利用其他的WinForm控件代替Button使用。
很多初学者的想法很单纯,心里总想着教科书上说按扭,只能用按扭,不会灵变通,这个在实际的开发中是行不通的。当然您也可以自已开发的一个Button类(当您成为老手时)。在项目开发中,可以直接使用Button,也可以使用Panel,Label,PictureBox等代替Button使用。别是使用图片时。
如下图所示:
图中有使用普通的Button控件,也有使用Panel+背景图片代替Button实使。毕竟C/S编程与B/S编程不同。在WinForm中,很多控件都有Click、MouseClick、MouseDown事件。这些事件都能让我们很好的实现鼠标点击操作,即就是Button那样。
下面分别介绍一下:
普通的按扭:
直接将Button控件拖上窗口中,不做任何属性设置。
设置按扭的FlatStyle为Flat,这样让按扭变得偏平。这种做法在以前XP时代很常用,但随着人们使用Win7,Win8,Win10,Win11后,这种做法不常(好像在工控机上还是很常用)。
添加背景片图的按扭,这给图片设置了背景图片和背景色。主要是因为这背景图片是透明的。这种做法不常用,因为图片周边有一个空白的间距。当然你可能重写Button基类来处理(老手),初学者可以使用以下做法。
使用Panel(或使用Picture等)代替Button,这种做法可以去掉Button中的空白间距。这种方法做出来的按扭好不好看,就取决于你的美术工底了(我的不好,哈哈)。
那如何设置图片,让用户觉得我已点了这个功能(按扭)呢,有很多做法,改变背景图片,改变文字等等。
这里我介绍一下我的做法,比如上图中的【报到统计】,大家都知道这是一个图片了吧,一般情况点击一下,换一不同颜色的图片即可。这就要准备两张【报到统计】的图片。我的做法是通过修改Panel的前景图片,背景图片不变。前景图片是一张只有一个红色横杠的图片(导入至项目的资源中备用):
切换代码:
项目中有很多这样的控件,大家写个公共方法执行一下即可(记得传入当前点击按扭的对象哦)。
图标按扭 :
开发过相关系统的工程师都清楚,一般情况下我们都会给按扭加上一个图标,通过这个图标更能体现这个按扭的作用。
比如:
加号表示新建,新增,增加,添加等
减号表示删除,移除等
WinForm的Button这个图标的位置很奇怪的,不是居左,居中就是居右。如果按扭的宽度太大,就是显示很不友好。很多人也不清楚(懒得研究)如何设置其属性让按扭变得更好看。其实只要肯多动手,多偿试还是很快就试出来的。
这样的图标位置看着是不是爽多了????答案是肯定的
只要设置一个按扭的Padding-Left属性即可。
最后一个示例啦,讲一下鼠标移上改变按扭的背景色,移出时还原按扭的背景色。
这需要使用两个事件,分别是MouseEnter和MouseLeave。如下图所示:
好了,简单的讲到这里,更好更丰富的用法有待大家自已去探索,学习一下高级程序,也可看看《C#程序员开发手册》,这本书里对C#的基础类库、控件的属性等有比较详细的介绍。
附以前开发过的系统的效果图,供大家参考一下:
边栏推荐
猜你喜欢
arithmetic operation
Many papers on ByteDance have been selected into CVPR 2021, and the selected dry goods are here
Activit零零碎碎要人命的坑
Log4j2 major vulnerabilities and Solutions
Flink 解析(一):基础概念解析
8086 CPU internal structure
Interpretation of Flink source code (III): Interpretation of executiongraph source code
Garbage first of JVM garbage collector
Activiti directory (V) reject, restart and cancel process
ByteDance overseas technical team won the championship again: HD video coding has won the first place in 17 items
随机推荐
Eight part essay that everyone likes
Wu Jun's trilogy insight (V) refusing fake workers
PostgreSQL 14.2, 13.6, 12.10, 11.15 and 10.20 releases
JVM 垃圾回收器之Garbage First
"One year after graduation, I won ACL best paper"
搭建flutter环境入坑集合
在 vi 编辑器中的命令模式下,删除当前光标处的字符使用 __ 命 令。
唯有学C不负众望 TOP4 S1E6:数据类型
Alibaba cloud server builds SVN version Library
GCC error: terminate called after throwing an instance of 'std:: regex_ error‘ what(): regex
8086 内存
Resume of a microservice architecture teacher with 10 years of work experience
Learn the wisdom of investment Masters
js垃圾回收机制和内存泄漏
汇编语言基础知识
關於Stream和Map的巧用
Flink 解析(四):恢复机制
Mongodb在node中的使用
案例:检查空字段【注解+反射+自定义异常】
Activiti目录(四)查询代办/已办、审核