Quiero mostrarles hoy una forma simple y sencilla de crear en visual basic .net un reloj digital. Lo haremos utilizando un label y un componente Timer.
El formulario debería tener una apariencia similar a la de la siguiente imagen>

Para este ejemplo donde solo mostraremos la hora, cambiaremos la fuente del control label para darle más importancia. Yo estoy usando fuente Tahoma tamaño 28.
Ahora veamos las propiedades del componente timer. Para que se ejecute el codigo del evento Tick del componente timer, este tiene que tener la propiedad enable en True. Y el codigo que ingresemos se va a ejecutar cada n ticks. La cantidad de ticks de n se las indicamos con la propiedad interval en milisegundo. Por lo tanto si colocamos dicha propiedad en 1000 ticks, el código se ejecutará cada 1 segundo.
Ahora veamos el código, es muy sencillo:
Private Sub Timer1_Tick(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Timer1.Tick Label1.Text = Date.Now.ToLongTimeString End Sub
Solo resta ejecutar (F5) la aplicación y tendremos nuestro reloj digital como se muestra en la siguiente imagen>

Si eres asiduo lector de este blog, sabrás que todo el código de los ejemplos siempre pretende ser muy sencillo y que tu tienes a partir de estos ejemplos la posibilidad de mejorarlo, complementarlos y adaptarlos para usarlos en tus aplicaciones.
Como siempre, espero que te sea útil.
Información Bitacoras.com…
Valora en Bitacoras.com: Quiero mostrarles hoy una forma simple y sencilla de crear en visual basic .net un reloj digital. Lo haremos utilizando un label y un componente Timer. El formulario debería tener una apariencia similar a la de la siguiente i….
el timer no es necesario, una forma mas sencilla:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Label1.Text = Format(Now, “hh:mm:ss tt”)
End Sub
fastmonro:
gracias por el aporte, pero lo único que haces con eso es “mostrar” en una etiqueta la hora en que se cargó el formulario (ya que lo llamas desde el evento Load). Permiteme decirte que para lograr la funcionalidad de un reloj, o sea, que muestre la hora actual “todo el tiempo” es necesario el componente Timer, sino no sería un reloj… solo mostrarías la hora de un momento determinado.
Muy bueno su aporte!!! Felicidades!!
excelente aporte hermano pero el unico problema que le encuentro es que no carga al mismo tiempo que lo ejecuta uno hay que esperar cierto tiempo para que muestre el reloj solo hay que poner lo mismo en el evento load del form yo lo hice en C# por que es el que mas puedo utilizar
private void timer1_Tick(object sender, EventArgs e)
{
label.Text = DateTime.Now.ToShortTimeString();
}
private void Form1_Load(object sender, EventArgs e)
{
label.Text = DateTime.Now.ToShortTimeString();
}
y una cosa mas alguien sabe como mostrar el nombre del archivo guardado o abierto en la barra de titulo e intentado de varias maneras y no encuentro como hacerlo no importa si es en VB o C#.
salu2
tienes razon pero es por qu etienes que esperar un segundo que es cuando se ejecuta el codigo tic del reloj (recuerda es cada 1 segundo es decir un segundo despues del load) te digo un truco mucho mas sencillo para qu eno te hagas bolas, pon el mismo codigo que pones en el tic del reloj en el form load de tu formulario asi:
private sub form1_load ….
Me.Label12.Text = Format(Now, “hh:mm:ss tt”)
end sub
y se acabo tu dilema
Saludos
eliseo….que bien gracias por ayudarnos con estos codigos sencillos y la buena explicacion a nosotros los que apenas empezamos con lo de programar…….tenes razon con el timer es muy necesario para que se actualize..
Gracias.
Buen aporte!!
Buena me gusto la solución
amigos no miro el codigo para el tick del timer?? ayudenme por favor
Hola, yo use el Timer y como dice arriba, en la propiedad Enable tiene q ir en True, y el intervale = 1000….ahora…hacen doble click en el objeto Timer1 y les llevara al evento Tick…dentro ponen el codigo algo asi…
Public Class frmPrincipal
Private Sub Tiempo_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tiempo.Tick
txtHora.Text = Format(Now, “hh:mm:ss tt”)
txtFecha.Text = Date.Now.Date
End Sub
End Class
en mi caso io le cambie el nombre del objeto, en ves de Timer1 le puse Tiempo…
espero q les ayude a los nuevos programadores.
Neobones tu función es cojonuda! va de puta madre.
Buenas amigos, he intentado varias veces como me dicen pero al correr el programa el reloj no se va actualizando cada segundo, que debo hacer para que en corrida se vaya actualizando, ya la propiedad de interval la coloque en 1000, sin embargo no se actualiza.
espero me pueda ayudar.
saludos.
aunque no lo mencionas supongo que por logica habras escrito el codigo para el evento tic del reloj? que es este
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Label12.Text = Format(Now, “hh:mm:ss tt”)
End Sub
SISAS TA BN EL CODIGO Y YOP APENAS TOY APRENDIENDO Y NA.. QUISIERA SABER COMO ASERLE PARA CREAR UN CRONOMETRO SISAS…
aqui hay algo un poquito mas elaborado
Public Class Form1
Dim contador As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Text = “indicador del tiempo”
Me.Label1.BorderStyle = BorderStyle.FixedSingle
Me.Label1.TextAlign = ContentAlignment.MiddleCenter
Me.Label1.Text = “”
Me.Label1.BackColor = Color.Black
Me.Label1.ForeColor = Color.Red
Me.Label1.Visible = False
Me.Timer1.Interval = 1000
Me.Timer1.Enabled = True
BackColor = Color.White
End Sub
Private Sub horaToolStripMenuitem_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles HoraToolStripMenuItem.Click
contador = 1
End Sub
Private Sub fechaToolStripMenuItem_click(ByVal sende As System.Object, ByVal e As System.EventArgs) Handles FechaToolStripMenuItem.Click
contador = 2
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Me.Label1.Visible = True
If contador = 1 Then Label1.Text = TimeString
If contador = 2 Then Label1.Text = My.Computer.Clock.LocalTime.Date.ToString
End Sub
End Class
Gracias por el aporte, funciona a la perfeccion
me estaba dando muchas vueltas con esto y con esas pocas lineas se soluciono…THANKS AGAIN!!!
desearia que me envies mas ejercicios con timer en especial como hacer que un elevador se mueva al piso deseado
gracias.
El reloj funciona correcto como esta en el ejemplo, simplemente al iniciar el formulario hay que poner Timer.Start()
Saludos.
si funka lo del timer pero mira tu task manager para que veas como se mueve de recursos (dependiendo de procesador ram etc..) alguna otra forma de optimizarlo? algun me.refresh?
chido hijes me saco de un apuro
tengo una duda de como ago un corte de caja con los toteles de las ventas dond el campo de la base de datos en access
es monto_venta
se te agradece si tienes algun ejemplo
hola soy estudiante de ingenieria en sistemas estoy haciendo un sistema para mi practica son excelentes sus aportes probe 2 ejemplos de arriba xq la verdad esto c supone es basico pero en estos casos a cualquiera c le apaga el cpu. jeje
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Label1.Text = Format(Now, “hh:mm:ss tt”)
End Sub
solo me da una determinada hora no la actualiza
y
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
LHora.Text = Date.Now.ToLongTimeString
End Sub
este si la propiedad de timer debe estar en true ciertisimo y un intervalo de 1000 y eso es todo funciona a la perfeccion
Hola, como se hace el reloj en vez de en un web form en un web site, no consigo verlo, el evento timer.start pone que no existe.
el problema es que los eventos de los controles se ejecutan del lado del servidor, y para que eso pase tienes que hacer un reques, lo cual vuelve a cargar toda la pagina… en realidad lo tienes que hacer del lado del cliente.
Prueba con java (javascript), con ajax o jQuery.
Suerte
grasias por todo pero necesito que me ayuden
necesito hacer todo esto pero en c# yo soy nuevo programdo si alguien sabe porfavor ayudenme.
Hola Yo tambien soy nuevo programando y queria saber si alguien sabe como hacer q un formulario a la hora q le das clic se haga transparente asi como las ventanas en el linux Opensuse 11.3
Imports ClassLibrary1
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Time.Start()
End Sub
Private Sub Time_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Time.Tick
Dim horas As New Class1
Label.Text = horas.hora()
‘ hora()
End Sub
‘Private Sub hora()
‘ Label.Text = Now
‘ ‘MessageBox.Show(“Colocando la hora”)
‘ End Sub
End Class
PASSABA POR AQUI BUSCANDO ESE CODIGO…SOLO AGARRE EL CODIGO DEL TIMER …Y CON UNOS ARREGLOS ME FUNCIONO A LA PERFECCION…GRACIAS MIGUELITO…
Gracias por los codigos anteriores me sirvieron para poder adaptarlo al mio.
El codigo que a mi me funcinó para obtener la hora, la cual cambiara conforme el sistema operativo lo hiciera..
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
lblHora.Text = Date.Now.ToLongTimeString
Timer1.Start()
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
lblHora.Text = Date.Now.ToLongTimeString
End Sub
ya tome varios ejemplos de arribaa y ninguno me funcionaa! creo que soy muy malo para esto :S necesito hacer un reloj pero ke en la pantalla se vea como van pasando los segundos oseaa algo asi! 00:00:00 ayudenmeee DD:
Hola a todos, pues yo he estado investigando acerca de los timer y segun he visto tengo que utilizarlos para hacer el control de un elevador hasta ahorita solo llevo la interfaz con los niveles del 1 al 10 y hacer el recorrido pero despues vuelve a comenzar desde 1 al 10 no como deberia de ser y todavia no he encontrado la forma de que funcione mediante los botones, no se si alguien le ha tocado trabajar en algo asi que me pueda ayudar o por lo menos explicar, de antemano gracias.
como hago para que con el timer cuando se ejecuta me muestra una palabra en un listbox