2017-04-23 4 views
0

Wenn ich etwas Falsches in eine Textbox schreibe und auf eine Schaltfläche klicke, erscheint eine Meldung, die immer wieder auftaucht, da ich einen Timer habe.C# Wenn eine MessageBox angezeigt wird, dann stoppe den Timer

Also ich möchte eine if-Anweisung machen, dass, wenn die Messagebox angezeigt wird, dann stoppen Sie den Timer, bis die Schaltfläche noch einmal angeklickt wird.

Ich habe versucht, mit diesen:

private void button1_Click(object sender, EventArgs e) 
    { 

     timer1.Start(); 
     if (errormsg) 
     { 
      timer1.Stop(); 
     } 
     data(); 

    } 
    private void data() 
    { 
    //code 

Jetzt ist hier, was in meinem timer1 Code ist:

private void timer1_Tick(object sender, EventArgs e) 
    { 
     int value; 

     if (int.TryParse(textBox1.Text, out value)) 
     { 
      if (value > 0) 
      { 
       timer1.Interval = value; 
      } 
     } 
     button1.PerformClick(); 
    } 

hier ist die Fehlermeldung:

private void errormsg() 
    { 
     MessageBox.Show("Sorry, there was an error. Please, try again."); 
    } 

ich auch beachten wird, dass ich m mit errormsg in einer else-Anweisung auf meinem // code

//code 
    else 
      { 
       errormsg(); 
      } 

Also meine Frage ist:

Wie kann ich den Timer Stopp machen, wenn ein falscher Wert auf meine Textbox angezeigt wird (// Code) verursacht ein messagebox zu erscheinen. Wenn dann in einem Textfeld ein korrekter Wert angezeigt wird und ich auf die Schaltfläche klicke, wird der Timer erneut gestartet.

Antwort

1

Stoppen Sie den Timer in Ihrer errormsg() - Funktion. Wenn Sie auf den Button geklickt haben, beginnt es erneut.

private void button1_Click(object sender, EventArgs e) 
    { 
     timer1.Start(); 
     data(); 
    } 

private void errormsg() 
    { 
     timer1.stop(); 
     MessageBox.Show("Sorry, there was an error. Please, try again."); 
    } 
Verwandte Themen