我在VB.NET中有一个淡入控件(Label)的问题, 我想让标签顺利淡入/淡出,我使用了一个计时器,3个变量名为RColor,GColor和BColor,这三个变量用于填充Color.FromArgb中的Function。像往常一样,RGB中的黑色是(0,0,0),白色是(255,255,255)
问题是,
我不能使用逻辑If因为它会返回异常:
System.ArgumentException:'值'256'对'red'无效。 'red'应大于或等于0且小于或等于255。'
Private Sub Tmr_Out_Tick(sender As Object, e As EventArgs) Handles Tmr_Out.Tick
RColor += 1
GColor += 1
BColor += 1
If RColor = 255 And GColor = 255 And BColor = 255 Then
Tmr_In.Stop()
End If
Label1.ForeColor = Color.FromArgb(RColor, GColor, BColor) 'This line goes to where the exception did happened.
我做的另一种方法是使用循环语句:
Private Sub Tmr_Out_Tick(sender As Object, e As EventArgs) Handles Tmr_Out.Tick
Do Until RColor = 255 And GColor = 255 And BColor = 255
RColor += 1
GColor += 1
BColor += 1
Label1.ForeColor = Color.FromArgb(RColor, GColor, BColor)
Loop
Tmr_Out.Stop()
该代码有效,但标签的前色似乎立即改变了......
**编辑:** 我自己回答了我的问题。