Originariamente inviato da URANIO
Succede perchè quando setti Timer.Interval questo resetta il timer.
Quindi continua a resettarsi e partire, scatenando l'evento tick fino a quando non arriva a 1.
Sei sicuro?
Secondo me è solo un problema di "tempo" nel senso che Interval è espresso in millisecondi, quindi da 25ms a "scendere" non è che ci sia tanto tempo per accorgersi di quello accade...in pratica è un battito di ciglia.
Esempio con due Timer e due Label, il primo decrementa il suo Interval mentre il secondo una variabile, i due valori sono visualizzati dalle Label, Interval è settato su 2 secondi e il decremento su 50ms:
codice:
Public Class Form1
Dim contatore_T2 As Integer
Private Sub Form1_Load() Handles MyBase.Load
Timer1.Interval = 2000
Timer2.Interval = 2000
contatore_T2 = 2000
End Sub
Private Sub Button1_Click() Handles Button1.Click
Timer1.Start()
Timer2.Start()
End Sub
Private Sub Timer1_Tick() Handles Timer1.Tick
If (Timer1.Interval = 50) Then
Timer1.Stop()
Timer2.Stop()
Label1.Text = "T1= stop"
Else
Timer1.Interval = Timer1.Interval - 50
Label1.Text = "T1= " & Timer1.Interval
End If
End Sub
Private Sub Timer2_Tick() Handles Timer2.Tick
contatore_T2 -= 50
Label2.Text = "T2= " & contatore_T2
End Sub
End Class