Bueno, no pretendo que este sea un ejemplo paso a paso mostrando cada una de las propiedades modificadas de cada control, muy por el contrario, me quiero concentrar en la funcionalidad del cronómetro y les dejaré el diseño a ustedes. Simplemente les mostraré el que hice yo.
Los controles a utilizar son: un formulario, tres botones y dos etiquetas. Tambien necesitaremos agregar al formulario un componente Timer. Se vería mas o mes así:

bien, lo primero que haremos será definir cuatro variables privadas a nivel del formulario.
Private hora As Integer = 0
Private minuto As Integer = 0
Private segundo As Integer = 0
Private milisegundo As Integer = 0
El componente Timer debe tener su propiedad interval en 100.
Crearemos una función para mostrar en el label1 el paso del tiempo:
Sub mostrarTiempo()
Label1.Text = hora.ToString.PadLeft(2, "0") & ":"
Label1.Text &= minuto.ToString.PadLeft(2, "0") & ":"
Label1.Text &= segundo.ToString.PadLeft(2, "0") & ":"
Label1.Text &= milisegundo.ToString.PadLeft(1, "0")
Label1.Refresh()
End Sub
En el evento tick del componente Timer es donde se desarrolla toda la lógica del cronómetro. Copia el siguiente código allí:
milisegundo += 1
If milisegundo = 10 Then
milisegundo = 0
segundo += 1
If segundo = 60 Then
segundo = 0
minuto += 1
If minuto = 60 Then
minuto = 0
hora += 1
End If
End If
End If
mostrarTiempo()
Bueno, solo resta el código de los tres botones. El botón iniciar activa el timer:
Timer1.Enabled = True
El botón Pausa detiene el timer:
Timer1.Enabled = False
Y el botón volver a cero resetea los valores de las variables:
hora = 0
minuto = 0
segundo = 0
milisegundo = 0
mostrarTiempo()
Espero que este ejemplo no les resulte complicado y por sobre todo que les sea util. Por último les dejo una captura del cronómetro en funcionamiento:

En el botón extra de tiempo Random (1er exámen del curso neteros):
hora = Math.Truncate(rnd() * 24)
minuto = Math.Truncate(rnd() * 60)
segundo = Math.Truncate(rnd() * 60)
milisegundo = Math.Truncate(rnd() * 10)
mostrarTiempo()
*** Nota: ***
Poner la palabra Randomize en el Form_Load
y como seria hacer con tres digitos los milisegundos??....no encuentro
ResponderEliminar