Entwickler-Ecke

WinForms - Timer tickt nicht


Regan - Mo 04.07.11 15:31
Titel: Timer tickt nicht
Hallo,

ich darf ein Programm schreiben, in dem sich ein Timer befindet. Ich habe diesen Timer aus der Toolbox auf meine Arbeitsfläche geworfen, mit einem Ereignis versehen und die Eigenschaft Enabled auf true gesetzt. Doch selbst wenn ich Timer.Start(); aufrufe, will der Timer nicht ticken. Das seltsame ist, dass die Enabled-Eigenschaft auf true steht :shock: . Ich hoffe, dass mir da jemand helfen kann.

IDE ist Visual Studio 2010 Ultimate.

Viele Grüße
Regan


Peter Bär - Mo 04.07.11 16:32

Hallo Regan

Anhand Deiner Beschreibung sollte das Ereigniss eigentlich ausgeführt werden.
Kannst Du den Code posten, der nicht funktionieren soll?

user profile iconRegan hat folgendes geschrieben Zum zitierten Posting springen:

... und die Eigenschaft Enabled auf true gesetzt. ... Das seltsame ist, dass die Enabled-Eigenschaft auf true steht


Diese Aussage ist für mich ein Bisschen wiedersprüchlich, oder habe ich da was falsch verstanden?

Gruss
Peter


Regan - Mo 04.07.11 23:28

user profile iconPeter Bär hat folgendes geschrieben Zum zitierten Posting springen:
Diese Aussage ist für mich ein Bisschen wiedersprüchlich, oder habe ich da was falsch verstanden?

Ich setze enabled auf true und wenn ich nach timer1.Start() die Enabled-Eigenschaft prüfe, dann ist sie immernoch auf true, aber der Timer tut nichts!


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
timer1.Enabled = true;
timer1.Start();
if (timer1.Enabled) {
  this.Text = "An";
}
else {
  this.Text = "Aus";
}

Ich weiß, dass ich die Abfrage unten noch verbessern kann. Allerdings läuft der Timer nicht.


Peter Bär - Di 05.07.11 07:54

Hallo Regan

Dein Quelltext funktioniert bei mir einwandfrei.


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
timer1.Enabled = true;
timer1.Start();
if (timer1.Enabled) {
  this.Text = "An";
}
else {
  this.Text = "Aus";
}
timer1.Stop();
if (timer1.Enabled) {
  this.Text = "An";
}
else {
  this.Text = "Aus";
}


Du musst eigentlich nur den Zustand der Enabled-Eigenschaft verändern, damit sie auch verändert angezeigt wird.

Ich würde nicht die Enabled-Eigenschaft abfragen, sondern eine andere dynamische Variable in Deinem Programm.
Dann hast Du auch die Gewissheit, dass etwas ausgeführt wird.


Yogu - Di 05.07.11 08:20

Kannst du vielleicht ein Beispielprojekt anhängen?


Regan - Di 05.07.11 18:36

Ich habe den Timer jetzt durch einen neuen ersetzt und es scheint zu funktionieren :gruebel: Keine Ahnung, was da los war.