VB简单问题,高手帮忙

来源:百度知道 编辑:UC知道 时间:2024/07/06 22:54:10
我想用下面的代码,让窗体的背景色循环变化,为什么不成功?我想可能是循环太快了,看不出变化,于是我用sleep函数,还是不行。
高手帮忙修改一下!注:只用循环实现,不用timer!

回答成功,即可送分,示谢!

Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Command1_Click()
Dim i As Integer
For i = 1 To 8
If i Mod 2 = 1 Then Me.BackColor = vbBlack Else Me.BackColor = vbWhite
Sleep 1000
Next
End Sub

Private Sub Form_Load()
Me.BackColor = vbWhite
End Sub

试过了可以的。
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Command1_Click()
Dim i As Integer
For i = 1 To 8
If i Mod 2 = 1 Then Me.BackColor = vbBlack Else Me.BackColor = vbWhite
Sleep 1000
DoEvents '加上这个吧,释放系统资源,不然在单核CPU系统里面会看不到效果
Next
End Sub

Private Sub Form_Load()
Me.BackColor = vbWhite
End Sub

不知道你想要怎么变,用For来改变效果不明显,建议用Timer控件定时切换。
Option Explicit
Dim runInt As Integer

Private Sub Command1_Click()
Timer1.Enabled = Not Timer1.Enabled
End Sub

Private Sub Form_Load()
Me.BackColor = vbWhite
Timer1.Enabled = False
Timer1.Interval = 100
End Sub

Private Sub Timer1_Timer()
If runInt Mod 2 = 1 Then Me.BackColor = vbBlack Else Me.BackColor = vbWhite
If runInt < 8 Then runInt = runInt + 1 Else runInt = 1
End Sub

转移控制权最好不要乱用,特别是在大的循