原创 winform实战项目--软件实现“流水灯”

2021-3-5 18:07 106020 25 5 分类: 软件与OS 文集: winform/c#编程


 实战项目旨在交流学习,项目相关资料请在公众号大鸟科创空间回复项目关键字——软件流水灯 以获取,欢迎在评论区交流意见。

 

简介:分享一个简单的软件项目---用软件实现“流水灯”。

先展示效果:

 

项目开发环境: Visual Studio 2017  winform  开发

开发语言: C#     

demo功能: 用窗体软件模拟单片机的“流水灯”效果

PS:其他版本的VS开发步骤基本一样

首先这个项目会用到一些资源图片,我把它放在此项目的资源文件夹里:

由于winform自带的控件风格比较传统,所以依靠上述图片,可以更好的在界面上面表示流水灯

             新建工程项目和上一篇“计算器”的操作步骤一样,可以参考其步骤,这里直接从界面设计开始:

在左侧工具箱中,拖出8个pictureBox控件,用来存放显示8个“灯”的图片,并将他们调整到大小一致、间距一致,如下图所示

每个pictureBoxSizeMode属性设定为 StretchImage

然后在Image属性中,选择“灯”图片作为控件的背景

选择资源这里,选择导入项目资源文件

这里可以把想要用到的“灯”的样式图片都导入进去。

然后选择一个“灯”的图片,作为流水灯熄灭时候的背景图

在所要的图片资源导入以后,右侧解决方案资源管理器中,会出现一个Resources文件夹,用于存放我们导入的图片。

 

8pictureBox都设置成同样的属性,并调整界面长度:

 

PS:这里先设置好一个pictureBox,再复制成8个所需工作量会更少

然后拖入一个button1控件,Text属性修改为“演示1”,表示点击这个按钮,就开始演示第一种花灯演示。  

然后工具栏中,拖出Timer1定时器控件,后面花灯演示的代码,要在定时器里面编写

定时器的中断时间设置的是100,表示100ms触发一次定时器中断

然后双击“演示1”按钮,进入代码编写

分别设置两个变量,用来表示流水灯的运动样式(style)和灯的序号(当light1变化到哪一个数字的时候,就表示哪一个灯亮)

在按下按钮后,定时器启动(100ms中断一次,所以流水灯变化频率也就是10HZ)

在定时器中断中,累加light1,加到8为一个循环,然后根据light的变化改变pictureBox的图片即可:

用了一个switch case语句,以便接下来再次添加其他流水灯的样式,以上语句写完后,可以运行观测效果:

 

然后依照此原理,还可以添加另外一种流水灯运动样式“演示2”,以及停止按钮

其代码和上面原理一样

其样式变化规律同样添加在case事件中即可

以下是效果:

再者,可以改变界面上流水灯的排布,使之变得更为有趣:

至此项目介绍完毕,本项目旨在开源,想要获取源码资料的朋友,关注下面公众号后,回复项目关键字“软件流水灯”,即可获得源码资料下载链接。



 

作者: 大鸟科创空间, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3949041.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

文章评论3条评论)

登录后参与讨论

自做自受 2021-3-7 18:13

值得参考!我喜欢欣赏音乐,找机会也试着学习制作一个随着音乐起伏变化的“流水灯”。

火引冰薪 2021-3-7 09:50

C#做图形界面确实很棒,可视化很强,界面也非常好看。

欢迎点击,参与讨论   
机器人技术与应用      
https://mbb.eet-china.com/forum/topic/86914_1_1.html

curton 2021-3-7 01:21

不错
可以做一个心
学习了

面包板工业电子版块3月份活动,免费送20BB,欢迎留言!
https://mbb.eet-china.com/forum/topic/86917_1_1.html
相关推荐阅读
大鸟科创空间 2022-02-14 17:42
生日快乐HTML浪漫网页制作源码
对象生日快到了,赶快下载去给ta一个惊喜吧。解压后里面有整个项目和使用说明。这个代码有背景音乐(可以自己更改),有自转相册(可以改成对象照片)如下是效果截图,用鼠标滑动界面会有爱心划过,下滑可以循环播...
大鸟科创空间 2022-01-18 18:06
Android之WebView用法
除了HTTP通信与 Socket 通信两种主要的网络技术外,在 Android 中还提供了一种加载和显示网页的技术—WebView。这可以让我们去处理一些特殊的需求,比如像微信那样在应用程序里展示网页...
大鸟科创空间 2022-01-07 14:18
Android之Socket实例
    Socket(套接字)是对 TCP/IP 协议的封装和应用,根据底层封装协议的不同,Socket 的类型可以分为流套接字(streamsocket)和数据报套接字(data...
大鸟科创空间 2021-12-24 14:38
Android之本地广播的使用
前面我们发送和接收的广播全部属于系统全局广播,即发出的广播可以被其他任何应用程序接收到,并且我们也可以接收来自于其他任何应用程序的广播。这样就很容易会引起安全性的问题,比如说我们发送的一些携带关键性数...
大鸟科创空间 2021-12-15 12:50
自定义广播实例
我们应该已经学会了通过广播接收者来接收系统广播的内容,但是在实际开发中,仍需要自定义一些广播。下面我们就来讲解如何在应用程序中发送自定义的广播。发送广播很简单,只需要声明一个意图,然后使用Contex...
大鸟科创空间 2021-12-07 13:04
Android之动态注册广播实例
Android内置了很多系统级别的广播,我们可以在应用序中通过监听这些广播来得到各种系统的状态信息,比如手机开机完成后会发出一条广播、电池的电最发生变化会发出一条广播、时间或时区发生改变也会发出一条广...
我要评论
3
25
关闭 站长推荐上一条 /2 下一条