2010-07-22 4 views
0
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, чтобы указать, является ли он белым, тогда я уменьшу до цвета до черного. => Не работаетПочему этот код не работает

+1

Попытайтесь иногда набирать код. Включение точки останова в начале функции, и, пройдя через нее, вероятно, вы позволили бы самим печатать ошибки. – pascal

ответ

5
i += i 

Должно быть:

i += 1 

i начинается в 0, так что вы продолжайте добавлять 0+0 и никогда не получить в любом месте.
Кроме того, цвета RGB проходят до 255, а не 225, но вы бы видели это.

+0

Спасибо, это работает – Snoob

2

Прежде всего, убедитесь, что таймер включен таймер где-то еще в вашем коде. Также, сделайте то, что сказал Коби, измените i += i на i += 1.

Что также важно, чтобы начать использовать Option Strict On, Option Explicit On и объявления типов ваших переменных:

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

Это первый шаг, чтобы улучшить качество кода.

+0

С этим кодом есть много проблем: 'i' должно быть' shade', 're', вероятно, должно быть' IncreaseSahde' и 'if incrementSahde then'. Я могу вспомнить еще несколько. – Kobi

+0

Спасибо, но я не английский, поэтому я просто делаю случайное имя var :( – Snoob

Смежные вопросы