Autor Beitrag
shacknet
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Sa 28.06.08 23:57 
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:

ausblenden 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...

ausblenden Quelltext
1:
Keine Überladung für "timer_Elapsed" stimmt mit dem Delegaten "System.Timers.ElapsedEventHandler" überein.					


Achja das habe ich auch noch drin:

ausblenden C#-Quelltext
1:
using System.Timers;					


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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: 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:
ausblenden 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:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
        private void timer_Elapsed(Object sender, ElapsedEventArgs e)
        {
            time += 1;
            label1.Content = time;
        }

Gruß Jürgen
shacknet Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Di 01.07.08 00:28 
Ahh,
oke nun geht es, habe aber sogleich ein neues Problem, bzw kein Problem aber eine frage.
Aber da es Themenunabhängig hiervon ist mach ich gleich einen neuen Thread.

Also danke für die Hilfe es klappt nun.

Shacknet