WinForms Timer
Timer sind eine praktische und oft benötigte Komponente und beim täglichen Programmieren unverzichtbar. So ist es nicht verwunderlich, dass sie im .NET Framework gleich mehrfach vorkommen. Beschäftigen wir uns aber zuerst mit der einfachsten Variante. Dem Timer im System.Windows.Forms.Namespace.
Obwohl man diesen Timer auch mit dem Designer erstellen kann, so rate ich doch zur manuellen Programmierung. Es ist nur minimaler Aufwand und sehr leicht zu verstehen. Außerdem macht des den Programmcode übersichtlicher.
System.Windows.Forms.Timer
formsTimer = new System.Windows.Forms.Timer();
formsTimer.Interval = 1000;
formsTimer.Enabled = true;
formsTimer.Interval = 1000;
formsTimer.Enabled = true;
Diese drei
Programmzeilen sind schon fast alles was für einen
Timer nötig ist. Zuerst wird ein Objekt der Timer
Klasse erzeugt. Das sollte nicht weiter schwierig
sein, denn es ist genau so wie bei anderen Objeken.
Der wohl wichtigste Parameter, den ein Timer
braucht, ist der Interval. Dieser Wert - in
Millisekunden - gibt an, wie oft die Timerfunktion
ausgeführt werden soll. Ein Mal pro Sekunde
entspricht also einem Interval von 1000. Enabled =
true startet diesen Timer.
Es gibt Alternativen um Timer zu starten und zu stoppen. Enabled auf true oder false zu setzen ist nur eine Möglichkeit. Zusätzlich gibt es Start und Stop Methoden, die genau das selbe bewirken.
Es gibt Alternativen um Timer zu starten und zu stoppen. Enabled auf true oder false zu setzen ist nur eine Möglichkeit. Zusätzlich gibt es Start und Stop Methoden, die genau das selbe bewirken.
formsTimer.Start();
und sein
Gegenstück
formsTimer.Stop();
kann man also
problemlos statt dem enabled Wert benutzen. Es ist
Geschmackssache was man hier bevorzugt. Technisch
gibt es keinen Unterschied. Will man aber prüfen ob
ein Timer aktiv ist oder nicht, so ist enabled der
Wert, der abgefragt werden muß.
Haben wir also jetzt einen Timer der ein Mal pro Sekunde ausgeführt wird so passiert immer noch recht wenig. Was dem Timer noch fehlt ist eine Methode die im eingestellten Interval abgearbeitet werden soll. Deklariert wird diese Methode wie folgt:
Haben wir also jetzt einen Timer der ein Mal pro Sekunde ausgeführt wird so passiert immer noch recht wenig. Was dem Timer noch fehlt ist eine Methode die im eingestellten Interval abgearbeitet werden soll. Deklariert wird diese Methode wie folgt:
formsTimer.Tick +=
new EventHandler(TimerEvent);
Unschwer zu erkennen
ist, dass hier ein EventHandler mit ins Spiel
kommt. Was das ist und was das tut, darüber sollte
man sich aber an dieser Stelle nicht unnötig
Gedanken. Events werde ich in einem späteren
Beispiel noch genauer erklären. Wichtig für uns ist
im Augenblick nur, das die aufzurufenden
TimerEvent-Methode bestimmte Parameter erwartet.
Diese Parameter werden aber vom System mit gegeben,
so dass man sich darüber keine Gedanken machen muß.
Wichtig ist in unserem Beispiel nur, dass unsere
Methode die Parameter richtig entgegen
nimmt.
private void
TimerEvent(Object myObject, EventArgs myEventArgs)
{
this.Text = DateTime.Now.ToString();
}
{
this.Text = DateTime.Now.ToString();
}
Auch wenn wir Object
und EventArgs hier nicht ausgewertet haben, haben
wir doch eine funktionsfähige Timermethode. In
diesem Beispiel werden Datum und Uhrzeit in die
Titelleiste unseres Forms geschrieben. Das
geschieht nach dem Start des Timers automatisch und
zwar jede Sekunde.