为什么这段代码不起作用

时间:2010-07-22 05:20:56

标签: vb.net

Public Class Form1  
Dim i = 0  
Dim re = True  
Private Sub Timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs)   Handles Timer.Tick  
    If i = 225 Then  
        re = False  
    ElseIf i = 0 Then  
        re = True  
    End If  
    If re = True Then  
        i += i  
    ElseIf re = False Then  
        i -= i
    End If  
    color1.BackColor = Color.FromArgb(i, i, i)  
End Sub  
End Class  

在此代码中,我希望标签从黑色到白色,然后从白色到黑色。 我设置re var以指示它是否为白色,然后我将减少直到颜色变为黑色。 =>不起作用

2 个答案:

答案 0 :(得分:5)

i += i 

应该是:

i += 1

i0开始,因此您不断添加0+0并且永远不会到达任何地方。
此外,RGB颜色一直到255,而不是225,但你会看到那一个。

答案 1 :(得分:2)

首先,确保在代码中的其他位置启用了计时器计时器。另外,做Kobi所说的,将i += i更改为i += 1

同样重要的是开始使用Option Strict OnOption Explicit On并声明变量的类型:

Dim i As Integer = 0  
Dim re As Boolean = True  

这是提高代码质量的第一步。