由于每次上课老是忘了下课的时间,于是在闲暇时间,用vb.net做了一个倒计时,先看一下倒计时的运行截图
因为时间有限,所以倒计时的功能比较单一,这里,倒计时所提供的功能包括:设置倒计时时间,倒计时时间清零,于退出倒计时。下面结合代码来分析一下倒计时的原理。
首先,倒计时的功能是通过右键来实现的,实现右键,是通过ContextMenuStrip来实现的,如下图所示
在设置好ContextMenuStrip之后,将ContextMenuStrip指定给页面的ContextMenuStrip.上面所描述的是页面的实现,接下来,我们来看一下具体的代码和原理。
在整个工程当中,使用了一个Module模块,用来保存全局变量,包括设计的倒计时时间,页面上要显示的内容以及一个布尔类型的变量用来标记用户是否按执行了暂停事件。
设计倒计时清零的代码如下:
IsPause = False
destTime = 0
计时器的原理实际上只是把全局变量destTime设置为0,并且打开是否执行暂停标记。
现在来看一下关键的代码,即实现倒计时的代码
在主要代码中,首先将暂停标记设置为False,接着定义了一个变量,destDateTime用来表示设置了倒计时之后的目标时间,定义了一个变量timeDiff,用来表示目标时间与当前时间的差值。接着用一个While循环来改变当前的时间,来显示每一毫秒的时间数,这样,给用户一个动态的感觉。每时每刻时间都在变化,增加了用户的体验。在while循环当中,使用一个Application.DoEvents()语句,释放出被占用的资源,这个是延续了vb6.0当中的DoEvents方法的。
这样,一个简易的倒计时就制作完成了。有兴趣的人还可以对他进行扩展。