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

边栏推荐
- 暑假刷题嗷嗷嗷嗷
- TCP的三次握手和四次挥手
- Logical operation instruction
- Jetpack compose 1.1 release, based on kotlin's Android UI Toolkit
- 信息与网络安全期末复习(基于老师给的重点)
- Many papers on ByteDance have been selected into CVPR 2021, and the selected dry goods are here
- MySQL数字函数
- Mongodb learning notes
- On the clever use of stream and map
- CentOS7上Redis安装
猜你喜欢

Alibaba cloud server docker installation mysql5.5

Activit fragmented deadly pit

连接局域网MySql

Program counter of JVM runtime data area

JVM garbage collector part 2

吴军三部曲见识(四) 大家智慧

Set up the flutter environment pit collection

Coursera cannot play video

复盘网鼎杯Re-Signal Writeup

Activiti directory (V) reject, restart and cancel process
随机推荐
Take you hand-in-hand to do intensive learning experiments -- knock the level in detail
Basic knowledge of assembly language
吴军三部曲见识(五) 拒绝伪工作者
Wu Jun trilogy insight (IV) everyone's wisdom
關於Stream和Map的巧用
暑假刷题嗷嗷嗷嗷
微信防撤回是怎么实现的?
Control transfer instruction
Serial serialold parnew of JVM garbage collector
8086 segmentation technology
PostgreSQL 14.2, 13.6, 12.10, 11.15 and 10.20 releases
复盘网鼎杯Re-Signal Writeup
冯诺依曼体系结构
Activiti directory (III) deployment process and initiation process
唯有學C不負眾望 TOP5 S1E8|S1E9:字符和字符串&&算術運算符
Shawshank's sense of redemption
À propos de l'utilisation intelligente du flux et de la carte
After idea installs the plug-in, restart the plug-in and disappear
在 vi 编辑器中的命令模式下,删除当前光标处的字符使用 __ 命 令。
数据传送指令