2009-08-10 6 views
1

Ich versuche ein Programm zu schreiben, das einen Timer, eine Dauer, eine Startzeit und eine Endzeit verwendet.C# Zeitmanagement Problem

In diesem Programm hat es drei Bildschirme. Wenn ich den Start-Timer auf einem Bildschirm anklicke, werden die anderen beiden Bildschirme mit einem Timer automatisch aktualisiert. Was ich momentan habe, ist ein Bildschirm, auf dem der Timer läuft, während die anderen beiden Bildschirme 00:00:00 anzeigen, während der erste noch läuft. Ich frage mich, ob jemand einen Vorschlag hat, wie man diese drei Bildschirme miteinander verbindet, so dass, wenn eine Minute verstrichen ist, 00:01:00 für alle drei Bildschirme angezeigt wird, anstatt nur 00:00:00, 00:00:00 und 00:01:00.

Ich brauche nur irgendeine Art von Hinweis oder eine Idee oder was ich suchen sollte, um dieses Problem für mich selbst zu lösen.

Die Sprache Ich bin mit C#

+0

Sie werden einige Quellen veröffentlichen müssen - es ist schwierig zu bestimmen, was genau aus dieser Beschreibung heraus geschieht. – JoshJordan

+0

Nicht genau, was Sie meinen. Haben Sie drei Formulare mit jeweils einem Label, und alle werden dasselbe zeigen? – Svish

Antwort

8

Sie sollten einen Delegaten auf Ihre Timer-Klasse verwenden . Jedes Fenster sollte dann das Delegate-Ereignis behandeln und bei Bedarf die Anzeige aktualisieren.

Beispiel:

Timer.TimeChange += form1.OnTimeChange; 
Timer.TimeChange += form2.OnTimeChange; 
Timer.TimeChange += form3.OnTimeChange; 

wo TimeChange Ihre Timer delegieren ist, und OnTimeChange sind das Formular Update-Methode.

0

Sie werden sicherstellen wollen, dass der Timer von der GUI isoliert ist. Ich würde vorschlagen, eine Timer-Klasse zu bauen und sie Feuer Ereignisse zu lassen, die die Fenster hören werden (obwohl Sie wahrscheinlich es auf das Abfeuern der Ereignisse beschränken möchten). MSDN Tutorial on Events