En esta oportunidad quisiera mostrarles cómo crear un cronómetro en visual basic .net utilizando el componente timer.
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 = 9 Then
milisegundo = 0
segundo += 1
If segundo = 59 Then
segundo = 0
minuto += 1
If minuto = 59 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:

Información Bitacoras.com…
Valora en Bitacoras.com: En esta oportunidad quisiera mostrarles cómo crear un cronómetro en visual basic .net utilizando el componente timer. Bueno, no pretendo que este sea un ejemplo paso a paso mostrando cada una de las propiedades modificadas de…
Muchas gracias me fue muy util apenas comienzo con .net y muy bien descrito .
Adios.
estan muy buenos los ejemplos…y gracias por aportar los conocimientos qya tiens para los q recien empezamos…
Hola!!!
px muchas gracias fue de muchisima ayuda tu codigo me sirvio es mas me salvo la vida jajaja…
no muy trabajo gracias…
chao bye kuidate…
Muchas gracias man… sin complicaciones este ejemplos, muy muy bueno, que dios te ayude a ti igual…
Muy buen Aporte te felicito sigue asi !!!
muchas gracias me ha servido mucho
El cronometro esta bien solo que no cuenta el tiempo 00:01:59:0 el segundo 59 no lo cuenta del 58 salta a 00 y el 59 que no existe, checa tu codigo por favor
La solucion seria asi
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()
De esta manera el segundo o minuto 59 existiria pero se agradece el aporte.
Muy bueno, muchas gracias!!!! me salió a mi que soy duranga
GRACIAS!!! por el ejemplo me desperto la logica xq realice un mega proyecto evaluando este ejemplo espero sigan suviendo ejemplo de esta magnitud Dios los bendiga
Soy nuevo programando haci realice mi proyecto.
Public Class Form1
Private hora As Integer = 0
Private minuto As Integer = 0
Private segundo As Integer = 0
Private milisegundo As Integer = 0
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
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
milisegundo += 1
If milisegundo = 9 Then
milisegundo = 0
segundo += 1
If segundo = 59 Then
segundo = 0
minuto += 1
If minuto = 59 Then
minuto = 0
hora += 1
End If
End If
End If
mostrarTiempo()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Timer1.Enabled = True
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Timer1.Enabled = False
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
End
End Sub
Muchas Gracias por el aporte
Buen código !!
Buen codigo….me sirvio a la perfeccion corregido el error ya mencionado….gracias
gracias por tu aporte me sirvio de mucha ayuda
Hola amigo quisioera saber donde haces tu blog ???es decir esta pagina ¡?
me podrias ayudar
Hola:
este blog lo hago en Buenos Aires, Argentina. Saludos.
esta genial me quedo magnifico gracias a tu tutorial aora ya tengo una idea de como usar el timer.
grax x el codigo
zi me zirvio!!
^○^
gracias con ese codigo estoy programando algo mas grande jejej
gracias…
excelente Codigo muy Util sobre todo para desarrollar alguna aplicacion que controle tiempos de espera de un proceso
Gracias mil
de nada!
y si quisiera en cuenta regresiva como seria?
Un ejemplo muy bueno lo habia echo en c++ con mi profresor de programacion pero no tenia idea como era en visual basic.net gracias por el aporte un ejemplo muy sencillo y a la vez muy atractivo.Gracias
muy bueno solo una cosa, en el boton de reset si lo presionas se pone en 0 pero sigue corriendo el tiempo para eso solo tendrias que poner
Private Sub btn_reset_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_reset.Click
Timer1.Enabled = False
hora = 0
minuto = 0
segundo = 0
milisegundo = 0
mostrarTiempo()
End Sub
Hola gracia por el aporte
Quisiera saber como adaptarlo a ASP con VB ya que al utilizar el codigo la pagina queda realizando postback
Gracias
muchisimas gracias, lo andaba buscando
MUY BUENA INFORMACION ME SALVASTE DE UN APURO
..
..
GRACIAS
Muchas gracias por los aportes. Son muy claros y muy buenos.
Muy buen aporte, es lo que estaba buscando!!
gracias
Me podrias decir como hiciste con el label1.refresh()
Gracias.