shacknet - Sa 28.06.08 23:57
Titel: Timer Control in Visual c#
Hallo c-sharp community,
ich bin neu im Bereich C#.
Bisher habe ich immer mit Visual Basic Programmiert, und zur Zeit steige ich auf C# um.
Meine IDE ist Microsoft Visual Studio 2008
Mit .NET Framework 3.5
Zur Zeit habe ich das große Problem, dass ich einen Timer einbauen möchte, aber es klappt zur Zeit nicht, da kein Steuerelement finden kann.
Scheinbar ist das so korrekt.
Also habe Google betrieben um ne Lösung zu finden. Als ich dachte es wäre brauchbar kam eine Fehlermeldung. Hier mal mein Code:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| private void TimerTool() { System.Timers.Timer timer = new Timer(); timer.Interval = 1000; timer.Elapsed += new ElapsedEventHandler(timer_Elapsed); timer.Enabled = true; timer.Start(); }
private void timer_Elapsed() { time += 1; label1.Content = time; } |
Das "new ElapsedEventHandler(timer_Elapsed);" in Zeile 5 ist als Fehler markiert... Diese Meldung ist im Fehler-Windows verzeichnet...
Quelltext
1:
| Keine Überladung für "timer_Elapsed" stimmt mit dem Delegaten "System.Timers.ElapsedEventHandler" überein. |
Achja das habe ich auch noch drin:
Kann mir da einer helfen den Fehler zu finden, Ich Versteh nicht so ganz was der von mir will.
Oder gibts ne andere Möglichkeite an einen Timer zu kommen.
Ich hoffe mir kann wer helfen...
So Far
shacknet
P.s.: Bitte verschieben, falls es das falsche Forum ist...
JüTho - So 29.06.08 11:41
Hallo und :welcome:
vielleicht wäre es besser, nicht den Timer aus System.Timers-Namespace zu verwenden, sondern den aus System.Windows.Forms bzw. für WPF den
DispatcherTimer. (Aber davon habe ich keine Ahnung, weil ich nur mit WinForms aus NET 2.0 arbeite.)
Das
entscheidende Problem ist folgender Hinweis:
Zitat: |
Keine Überladung für "timer_Elapsed" stimmt mit dem Delegaten "System.Timers.ElapsedEventHandler" überein. |
Also musst Du in der
SDK-Doku (= Online-Hilfe MSDN oder Offline-Hilfe) die Anforderungen für den
ElapsedEventHandler-Delegaten nachlesen:
C#-Quelltext
1: 2: 3: 4:
| public delegate void ElapsedEventHandler ( Object sender, ElapsedEventArgs e ) |
Deine eigene Methode muss also genauso mit diesen Parametern deklariert werden:
C#-Quelltext
1: 2: 3: 4: 5:
| private void timer_Elapsed(Object sender, ElapsedEventArgs e) { time += 1; label1.Content = time; } |
Gruß Jürgen