VB问题求解答
刚学VB,觉得蛮有趣的,就自己写着玩,然后我想利用timer控件来控制label中字体颜色的周期性变化,我的代码是:但是运行结果只有红色和绿色,红色的时间较绿色长,代码是...
刚学VB,觉得蛮有趣的,就自己写着玩,然后我想利用timer控件来控制label中字体颜色的周期性变化,我的代码是:
但是运行结果只有红色和绿色,红色的时间较绿色长,代码是
Dim n%, a%
Private Sub Form_Load()
n = 1 '定义n的初值
End Sub
Private Sub Timer1_Timer()
n = n + 1
a = n Mod 4 'a是n整除4的余数
Select Case Index '通过判断余数的数值来确定label1中字体的颜色
Case a = 0
Label1.ForeColor = vbRed
Case a = 1
Label1.ForeColor = vbGreen
Case a = 2
Label1.ForeColor = vbBlue
Case a = 3
Label1.ForeColor = H0
End Select
End Sub
请各位懂的大哥大姐不吝赐教!! 展开
但是运行结果只有红色和绿色,红色的时间较绿色长,代码是
Dim n%, a%
Private Sub Form_Load()
n = 1 '定义n的初值
End Sub
Private Sub Timer1_Timer()
n = n + 1
a = n Mod 4 'a是n整除4的余数
Select Case Index '通过判断余数的数值来确定label1中字体的颜色
Case a = 0
Label1.ForeColor = vbRed
Case a = 1
Label1.ForeColor = vbGreen
Case a = 2
Label1.ForeColor = vbBlue
Case a = 3
Label1.ForeColor = H0
End Select
End Sub
请各位懂的大哥大姐不吝赐教!! 展开
展开全部
你用的select case index ,即根据index的值来选择,而index你未定义也未赋值,故始终有index=0;timer1_timer第一次运行时a=2,此时a=0为false,隐式转换为0,即 case a=0 实际为case 0,符合条件(index=0),执行Label1.ForeColor = vbRed;第二次同第一次,第三次a=0,a=0为true,转换为1,即case a=0 实际为 case 1,不符合条件,跳到下一个case a=1,即case 0,符合条件,执行Label1.ForeColor = vbGreen。另外select case 语句 是顺序判断条件,满足条件执行后,不会继续向下判断条件,而是直接end select。可以看出只有a=0时字体颜色为绿色,其他时间为红色,所以运行结果只有红色和绿色,红色的时间较绿色长。
正确的代码是:
Dim n%, a%
Private Sub Form_Load()
n = 1 '定义n的初值
End Sub
Private Sub Timer1_Timer()
n = n + 1
a = n Mod 4 'a是n整除4的余数
Select Case a '通过判断余数的数值来确定label1中字体的颜色
Case 0:
Label1.ForeColor = vbRed
Case 1:
Label1.ForeColor = vbGreen
Case 2:
Label1.ForeColor = vbBlue
Case 3:
Label1.ForeColor = H0
End Select
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询