Timer mit Taskleiste synchronisieren

26/12/2009 - 13:12 von Alberto Luca | Report spam
Hallo NewsGroup,

ich möchte in der Statuszeile die Uhrzeit hh:mm anzeigen.
Durch ein Timer-Control (Intervall00*60) wird jede Minute die Uhrzeit
aktualisiert.

Wie kann ich erreichen, dass jeweils zur vollen Minute, der Timer-Event
ausgelöst wird?
Dadurch würde die Uhrzeit in meiner Statuszeile identisch der Uhrzeit in der
Taskleiste sein.

Bisher versuchte ich, dass der 1. Event nach n Secunden (Intervall =
DateTime.Now.Secund) aktiviert wurde, die Folge-Events dann nach jeweils 60
Sec.
War jedoch nicht erfolgreich!?

Coding für 1. Intervall:
int i = DateTime.Now.Second + 60;

this.timer.Interval = 1000 * i; // 1000 = i sec

this.timer.Enabled = true;


Besten Dank vorab!
Ciao, Alberto
 

Lesen sie die antworten

#1 Frank Dzaebel
26/12/2009 - 14:27 | Warnen spam
Hallo Alberto,

ich möchte in der Statuszeile die Uhrzeit hh:mm anzeigen.
Durch ein Timer-Control (Intervall00*60) wird jede Minute die
Uhrzeit aktualisiert.
Wie kann ich erreichen, dass jeweils zur vollen Minute, der
Timer-Event ausgelöst wird?



Zum Beispiel:

private void Form1_Load(object sender, EventArgs e)
{
timer1.Tick += new EventHandler(timer1_Tick);
timer1.Enabled = true; timer1_Tick(timer1, EventArgs.Empty);
}

void timer1_Tick(object sender, EventArgs e)
{
toolStripStatusLabel1.Text = DateTime.Now.ToString("HH:mm");
timer1.Interval = IntervallBisNàchsteMinute();
}

private int IntervallBisNàchsteMinute()
{
const int anzSekundenInMinute = 60;
const int anzMillisekundenInSekunde = 1000;
const int msecZusatz = 100;
return (anzSekundenInMinute - DateTime.Now.Second)
* anzMillisekundenInSekunde + msecZusatz;
}


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen