2011-02-17 21 views

Respuesta

12

Añadir un nuevo control Timer al formulario, denominado Timer1, establecer el intervalo de 1000 (ms), a continuación, haga doble clic en el control Timer para editar el código subyacente para Timer1_Tick y añadir este código:

this.label1.Text = DateTime.Now.ToString(); 
+0

Y no se olvide de poner en marcha el temporizador con 'Timer1.Start();' –

+0

Buena captura - o establecer la propiedad Enabled en el diseñador para hombre verdadero – servermanfail

8

Agregue un control Timer que está configurado para disparar una vez por segundo (1000 ms). En ese temporizador Tick event, puede actualizar su etiqueta con la hora actual.

Puede obtener la hora actual usando algo como DateTime.Now.

7

Usted puede agregar un control temporizador y especificar por intervalo de milisegundos

private void timer1_Tick(object sender, EventArgs e) 
    { 
     lblTime.Text = DateTime.Now.ToString("dd-MMM-yyyy hh:mm:ss tt"); 
    } 
6

Prueba el siguiente código:

private void timer1_Tick(object sender, EventArgs e) 
{ 
    lblTime.Text = DateTime.Now.ToString("hh:mm:ss"); 
} 
4

Debe establecer el temporizador para estar habilitado también, ya sea en el código o en la ventana de propiedades.

en el código, por favor, escriba lo siguiente en la sección de carga del formulario:

myTimer.Enabled = true; 
myTimer.Interval = 1000; 

Después de eso, asegúrese de que su evento de temporizador es similar a esto:

private void myTimer_Tick(object sender, EventArgs e) 
{ 
    timeLabel.Text = DateTime.Now.ToString("hh:mm:ss");    
} 
+0

Gracias ... Greate –

0

Dado que el intervalo del temporizador no es su actualización exacta podría estar en mala sincronización y estará a la deriva con respecto a la transición de segundos real. En algunos eventos se retrasará o antes de la transición y perderá actualizaciones en su pantalla de tiempo

En lugar de sondear una alta frecuencia para disparar la actualización al cambio de segundos, este método puede otorgarle cierto respeto.

Si le gustan los reguladores, puede ajustar su actualización de tiempo para que se encuentre 100 ms después de la segunda transición real ajustando el temporizador de 1000 ms usando la propiedad Milisegundo de la marca de tiempo que desea mostrar.

En el código de evento de temporizador hacer algo como esto:

//Read time 
DateTime time = DateTime.Now; 

//Get current ms offset from prefered readout position 
int diffms = time.Millisecond-100; 

//Set a new timer interval with half the error applied 
timer.Interval = 1000 - diffms/2; 

//Update your time output here.. 

siguiente intervalo del temporizador debe entonces desencadenar más cerca del punto seleccionado 100 ms después de la transición segundos. Cuando en Transition + 100ms el error alternará +/- manteniendo la posición de lectura a tiempo.

0
private int hr, min, sec; 

public Form2() 
{ 
    InitializeComponent(); 
    hr = DateTime.UtcNow.Hour; 
    min = DateTime.UtcNow.Minute; 
    sec = DateTime.UtcNow.Second; 
} 

//Time_tick click 
private void timer1_Tick(object sender, EventArgs e) 
{ 
    hr = DateTime.UtcNow.Hour; 
    hr = hr + 5; 
    min = DateTime.UtcNow.Minute; 
    sec = DateTime.UtcNow.Second; 

    if (hr > 12) 
     hr -= 12; 

    if (sec % 2 == 0) 
    { 
     label1.Text = +hr + ":" + min + ":" + sec; 
    } 
    else 
    { 
     label1.Text = hr + ":" + min + ":" + sec; 
    } 
} 
+0

código sólo respuestas se consideran malas prácticas . Por favor incluye una breve reseña de explicación. –

Cuestiones relacionadas