none
Ayuda a emparejar un cronometro bien

    Pregunta

  • Alguien me puede ayudar a emparejar este cronometro bien, de cual se desfasa de tiempo y a mayor tiempo es mayor la separación de tiempo entre el tiempo correcto.

    Public Class Form1
    
    
    
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    
            Label4.Text += 1
            If Label4.Text = "59" Then
                Label3.Text += 1
                Label4.Text = 0
            End If
            If Label3.Text = "59" Then
                Label2.Text += 1
                Label3.Text = 0
            End If
            If Label2.Text = "59" Then
                Label1.Text += 1
                Label4.Text = 0
            End If
        End Sub
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Timer1.Start()
        End Sub
    
    End Class


    Mi intervalo de tiempo lo he tratado del 1 al 10

    martes, 24 de enero de 2017 1:27

Respuestas

  • No uses el Tick del Timer para realizar esa clase de cálculos. Windows no te garantiza que los eventos ocurran en tiempo real.

    Úsalo para actualizar el o los labeles, leyendo el tiempo del sistema. Por ejemplo

    Public Class Form1
        Dim inicio As Long
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Timer1.Interval = 10
            Timer1.Enabled = True
            Timer1.Stop()
        End Sub
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Timer1.Start()
            inicio = DateTime.Now.Ticks
        End Sub
    
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            Timer1.Stop()
        End Sub
    
        Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
            Dim ts As New TimeSpan(DateTime.Now.Ticks - inicio)
    
            Label1.Text = ts.ToString
        End Sub
    End Class
    

    • Marcado como respuesta Cael1020 martes, 24 de enero de 2017 4:25
    martes, 24 de enero de 2017 1:46