当前位置:网站首页>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#的基础类库、控件的属性等有比较详细的介绍。
附以前开发过的系统的效果图,供大家参考一下:
边栏推荐
猜你喜欢
MySQL optimization notes
Interpretation of Flink source code (III): Interpretation of executiongraph source code
1. JVM入门介绍
微信防撤回是怎么实现的?
Notes on how the network is connected
The "advertising maniacs" in this group of programmers turned Tiktok advertisements into ar games
【逆向初级】独树一帜
吴军三部曲见识(五) 拒绝伪工作者
Instructions for Redux
【逆向中级】跃跃欲试
随机推荐
案例:检查空字段【注解+反射+自定义异常】
连接局域网MySql
JVM garbage collector part 1
Activiti目录(五)驳回、重新发起、取消流程
SQL tuning notes
JVM 垃圾回收器之Garbage First
Flink源码解读(二):JobGraph源码解读
Logical operation instruction
List集合数据移除(List.subList.clear)
PostgreSQL 14.2, 13.6, 12.10, 11.15 and 10.20 releases
Interpretation of Flink source code (III): Interpretation of executiongraph source code
Mongodb在node中的使用
Many papers on ByteDance have been selected into CVPR 2021, and the selected dry goods are here
Flink源码解读(三):ExecutionGraph源码解读
[CISCN 2021 华南赛区]rsa Writeup
IDEA断点调试技巧,多张动图包教包会。
唯有学C不负众望 TOP1环境配置
JVM类加载子系统
Flink parsing (VI): savepoints
Instructions for Redux