主要是利用一个小例子讲解VB中计时器Timer的运用。
如下图所示:
有一个显示当前时间,在屏幕的边缘不停地移动。
首先是窗体设置,直接从工具箱拖入Label与Timer控件。Timer控件是没有长度的,属于脚本类型的控件,只能双击写代码。
各个空间的尺寸、文本等就不设置了,直接双击窗体,在窗体初始化下的过程,用代码控制。
在代码界面输入以下的代码:
Public Class Form1 Public Flag As Integer '全局变量Flag的定义 Private Sub Form1_Load(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles MyBase.Load '窗体载入马上执行的事件 Me.WIDth = 300 Me.Height = 300 Label1.top = 0 Label1.left = 0 Label1.Text = Now Timer1.Interval = 1000 'Timer1每1000毫秒,就是1秒,执行Timer1_Tick这个函数 Timer1.Enabled = True Timer2.Interval = 80 'Timer2每80毫秒,执行Timer2这个函数 Timer2.Enabled = True Flag = 0 End Sub Private Sub Timer1_Tick(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Timer1.Tick '此过程在双击控件会自动生成,无须自己输入 Label1.Text = Now 'vb.net只能用Now取当前的时间,Time$是不行 End Sub Private Sub Timer2_Tick(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Timer2.Tick If Flag = 0 Then If Label1.left + 20 > WIDth - Label1.WIDth Then Flag = 1 Else Label1.left += 20 End If ElseIf Flag = 1 Then If Label1.top + 20 > displayRectangle.Height - Label1.Height Then ' displayRectangle.Height是vb.net的写法,在vb6写成Scaleheight Flag = 2 Else Label1.top += 20 End If ElseIf Flag = 2 Then If Label1.left - 20 < 0 Then Flag = 3 Else Label1.left -= 20 End If ElseIf Flag = 3 Then If Label1.top - 20 < 0 Then Flag = 0 Else Label1.top -= 20 End If End If End SubEnd Class
程序的思想与《【ActionScript】组件的颜色变换》( 点击打开链接)是一模一样的。只是这里是控件在四个边角的移动。
一进入程序,首先进入Private Sub Form1_Load这个过程,设置好各个控件。
之后,每1秒用当前时间刷新Label1的文本内容。每80毫秒刷新Label的位置。top与left属性分别构成Label的横纵坐标。还要判断,Label是否到底控件的边缘。
这里的高度不可以用Height,这个高度不包含标题栏的高度。displayRectangle.Height是vb.net的写法,在vb6写成Scaleheight,可以取出窗体含标题的高度。
这样判断才可能使得Label1的位置不超出窗体的边缘。
同时,Flag必须定义为一个全局变量,初始为0,否则,如果在Private Sub Timer2_Tick中定义,会出现每次Flag都0的错误了。因为读一次Private Sub Timer2_Tick就重新定义Flag为0,因此Flag定义必须放在此过程之外,成为全局变量。
总结以上是内存溢出为你收集整理的【Visual Basic】计时器与窗体屏幕尺寸的取法全部内容,希望文章能够帮你解决【Visual Basic】计时器与窗体屏幕尺寸的取法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)