Je veux afficher l'heure actuelle sur une étiquette à l'aide de C # mais le temps changera en permanence à titre de changement de temps système. Comment puis-je faire cela? P>
7 Réponses :
Ajoutez un nouveau contrôle de la minuterie à votre formulaire, appelé Timer1, Définir l'intervalle sur 1000 (MS), puis double-cliquez sur la commande de la minuterie pour modifier le code-derrière pour Timer1_TICK et ajouter ce code:
this.label1.Text = DateTime.Now.ToString();
Et n'oubliez pas de commencer la minuterie avec timer1.start (); code>
Bonne prise - ou définissez la propriété activée dans le concepteur à true
Ajouter un Minuterie code>
contrôle qui est défini sur le feu une fois que chaque seconde (1000 ms). Dans cette minuterie cocher code> Événement
, vous pouvez mettre à jour votre étiquette avec l'heure actuelle. P>
Vous pouvez obtenir l'heure actuelle en utilisant quelque chose comme DateTime.now Code>
. P>
Vous pouvez ajouter un contrôle Minuterie strong> et spécifiez-le pour private void timer1_Tick(object sender, EventArgs e)
{
lblTime.Text = DateTime.Now.ToString("dd-MMM-yyyy hh:mm:ss tt");
}
Essayez le code suivant:
private void timer1_Tick(object sender, EventArgs e) { lblTime.Text = DateTime.Now.ToString("hh:mm:ss"); }
Vous devez définir la minuterie pour être activée également, soit dans le code, soit dans la fenêtre Propriétés.
Dans le code, veuillez saisir la section suivante dans la section Charge de formulaire: P>
private void myTimer_Tick(object sender, EventArgs e) { timeLabel.Text = DateTime.Now.ToString("hh:mm:ss"); }
Étant donné que l'intervalle de minuterie n'est pas exact que votre mise à jour pourrait être en mauvaise synchronisation et dérivera par rapport à la transition réelle des secondes. À certains événements, vous passerez en arrière ou avant la transition et les mises à jour de la transition et des mises à jour de votre temps
au lieu de l'interrogation à haute fréquence pour déclencher la mise à jour au changement des secondes, cette méthode peut vous accorder un respect. P> Si vous aimez les régulateurs, vous pouvez régler votre mise à jour de temps pour être située en toute sécurité 100 ms après la deuxième transition réelle en ajustant la minuterie de 1000 ms à l'aide de la propriété Millisecond de l'horodatage que vous souhaitez afficher. P>
Dans le code d'événement de la minuterie Faites quelque chose comme ceci: P>
//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..
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; } }
Les réponses de code que sont considérées comme une mauvaise pratique. Veuillez inclure un claquement d'explication rapide.