当前位置:网站首页>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#的基础类库、控件的属性等有比较详细的介绍。
附以前开发过的系统的效果图,供大家参考一下:

边栏推荐
- Koa Middleware
- Assembly language segment definition
- Idea breakpoint debugging skills, multiple dynamic diagram package teaching package meeting.
- 面试集锦库
- 吴军三部曲见识(七) 商业的本质
- SQL调优小记
- Yao BanZhi and his team came together, and the competition experts gathered together. What fairy programming competition is this?
- Ce n'est qu'en apprenant que c est à la hauteur des attentes Top5 s1e8 | s1e9: caractères et chaînes & opérateurs arithmétiques
- 汇编语言寻址方式
- 连接局域网MySql
猜你喜欢

Wu Jun's trilogy experience (VII) the essence of Commerce

Flink 解析(一):基础概念解析

Wu Jun's trilogy insight (V) refusing fake workers

信息与网络安全期末复习(完整版)

Install docker under windows10 (through Oracle VM VirtualBox)

Resume of a microservice architecture teacher with 10 years of work experience

1. JVM入门介绍

8086 CPU 内部结构

Garbage first of JVM garbage collector

程序员定位解决问题方法论
随机推荐
GCC error: terminate called after throwing an instance of 'std:: regex_ error‘ what(): regex
Basic knowledge of assembly language
Thank you for your invitation. I'm in the work area. I just handed in the code. I'm an intern in the next ByteDance
Resume of a microservice architecture teacher with 10 years of work experience
MySQL date function
【逆向】脱壳后修复IAT并关闭ASLR
Activiti目录(五)驳回、重新发起、取消流程
MySQL数字函数
mysql的合计/统计函数
关于Stream和Map的巧用
Introduction to spring trick of ByteDance: senior students, senior students, senior students, and the author "brocade bag"
吴军三部曲见识(四) 大家智慧
Idea resolving jar package conflicts
[CISCN 2021 华南赛区]rsa Writeup
Only learning C can live up to expectations Top1 environment configuration
Only learning C can live up to expectations top2 P1 variable
复盘网鼎杯Re-Signal Writeup
Activiti目录(一)重点介绍
信息与网络安全期末复习(基于老师给的重点)
Install docker under windows10 (through Oracle VM VirtualBox)