C# Timer arbeiten nicht

Gast #6334499
es ist spät abends und ich finde den Logikfehler nichtr. hatte 
zwischendurch die Timer laufen, aber kriege es nicht mehr hi´n. bitte 
helfen
1
    public partial class Test_läuft : Form
2
    {
3
        Abfrage_Detonation Abfr = new Abfrage_Detonation();
4
        private TimeSpan TimeLeft;
5
        public Test_läuft()
6
        {
7
            InitializeComponent();
8
            if (GlobaleVariablen.Timer_Start == true)
9
            {
10
                timer1.Start();  // ruft Abfrage_Detonation auf
11
                timer2.Start();  // für Countdown
12
                // das Ganze ließe sich auch mittels eines Timers umsetzen, soll hier der Übersichtlichkeit dienen
13
            }
14

15
            // Augabe für Countdown
16
            TimeLeft = new TimeSpan(0, 0, 10);
17
            lblTimer2.Text = TimeLeft.ToString(@"hh\:mm\:ss");
18
        }
19

20
        private void timer1_Tick(object sender, EventArgs e)
21
        {
22
            Abfr.ShowDialog();
23
        }
24

25
        private void timer2_Tick(object sender, EventArgs e)
26
        {
27
            TimeLeft = TimeLeft.Subtract(TimeSpan.FromSeconds(1));
28
            lblTimer2.Text = TimeLeft.ToString(@"hh\:mm\:ss");
29

30
            if (TimeLeft.TotalSeconds <=0)
31
            {
32
                timer1.Stop();
33
                timer2.Stop();
34
            }
35
        }
36
    }
37
}
Pala schrieb:
> niemand?

Zunächst stelle ich mir die Frage, ob Umlaute in Klassennamen möglich 
und erlaubt sind? Habe schon lange nicht mehr mit C# programmiert, aber 
das würde ich so oder so ändern. Umlaute sind uncool.

Weiterhin wäre die Frage: Welchen Fehler wirft der compiler?
Pala schrieb:
> Miro V. schrieb:
>> Umlaute sind uncool.
>
> hast du recht, war aber bis jetzt kein Problem. Compiler gibt keine
> Fehlermeldung aus.

Normalerweise sieht das mit den Timern so aus:

Timer t1 = new Timer(); // Timer anlegen
t1.Interval = 100; // Intervall festlegen, hier 100 ms
t1.Tick+=new EventHandler(t1_Tick); // Eventhandler ezeugen der beim 
Timerablauf aufgerufen wird
t1.Start(); // Timer starten

In deinem Code fehlt also erstens das setzen des Intervals und zweitens 
die Zuweisung des EventHandlers für die Methode *.Tick. Also entweder 
hast du uns nicht den ganzen Quellcode gezeigt oder aber schlichtweg 
beides einfach vergessen?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 6 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.