![d1646cb9f05edbdb0a2003224b213f6c.png](https://i-blog.csdnimg.cn/blog_migrate/133df5f5c0c7059a14e30662619972cf.jpeg)
原文链接:
No.27 VB制作LED效果倒计时程序mp.weixin.qq.com![f652e0b876d348a8be87962008bd5a6a.png](https://i-blog.csdnimg.cn/blog_migrate/f5a54a59e19e90d3e2b02f4435010a72.jpeg)
仿LED电子屏效果
今天我们讲一个比较有趣的例子,这个题目来自于网友“锦绣”,具体要求就是如何用VB模仿LED屏幕显示数字的效果。如图:
![a0647e6ff1d3447fafb5013d7b6b4f17.png](https://i-blog.csdnimg.cn/blog_migrate/f8522e03d88bbd3919491b04fec65f6c.png)
其实原理很简单,用控件来代替LED屏幕上的元件,通过更改颜色来形成点阵数字。可用的控件有很多,比如说Label控件,Command控件,我们为了方便使用按钮,在窗体上建立9X9的Command控件数组,并且使用“格式”菜单中的"对齐"和“同一尺寸”功能调整大小并对齐:
![aba252de2d30561400be91b474667024.png](https://i-blog.csdnimg.cn/blog_migrate/5fcba4f7f5126cb553356b8806f84f49.png)
![eb3b2ac79507bcad73868e48e0a24fc9.png](https://i-blog.csdnimg.cn/blog_migrate/a07503817df6bdc048093baacccf880a.png)
我们设计计数范围为0~99,所以找出两个区域用于显示两位数:
![a6cd6837fca77ab701c3c447cc645540.png](https://i-blog.csdnimg.cn/blog_migrate/4e5c718c32477947db78e104401bd10d.png)
我们通过改变这两个区域Command背景色来达到显示数字的效果。我是这样想的,把0~9每一个数字用一个过程来实现,需要显示的时候直接调用过程,比如:
![9d3f20db6f4dbd0091b0ee5cd3f88e30.png](https://i-blog.csdnimg.cn/blog_migrate/c8e2ca9fc2d2f23744061c803a6747b6.jpeg)
这里要注意的是,当你设置需要显示的某个区域的时候,先擦除上一个数字所设置的颜色,就好比你在黑板上写字之前要擦黑板一样。
我们需要让个位显示0的时候直接Call g0
我们定义个位0~9个过程,再定义十位0~9个过程,工作就完成一大半。
我们再来实现倒计时功能:
添加一个Timer控件并将Interval属性设置为1000,也就是一秒执行一次,然后将Enabled 属性设置为 False。添加一个Text文本框控件,用来接收用户设定的数值。
声明一个变量用于存放用户设定的值,然后在Timer中每次变量-1并写入text文本框中,当变量=0时停止计时。
![1476ba6ed28df3c59ae807c594531965.png](https://i-blog.csdnimg.cn/blog_migrate/b03bdff76c087da484f377881207f2a4.png)
在按钮控件数组中显示文本框中的数字呢?我们用Len函数检测文本框中是否两位数,如果是,用Left和Right函数分别取得个位和十位,再用Select Case分别选择所需要的过程,代码太长,我就不贴图了,下面看运行效果,源码下载地址在下面:
![351d8799890d036e3b6f2fd9a01a9913.png](https://i-blog.csdnimg.cn/blog_migrate/165e3a34b856e36d1b85810ef27f9869.png)
下载地址:
http://51vb.ys168.com/
![dfdde12acc5652d0370eb7f5c0f84802.png](https://i-blog.csdnimg.cn/blog_migrate/499d1fd405e5238af7f7a51c10f49d66.jpeg)