2017-04-23 27 views
0

当我在文本框上写错了某些内容并单击某个按钮时,弹出一个消息框,并且由于有定时器而不断弹出。C#如果显示消息框,然后停止计时器

所以我想做一个if语句,如果显示messagebox,然后停止计时器,直到再次单击该按钮。

我尝试使用这样的:

private void button1_Click(object sender, EventArgs e) 
    { 

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

    } 
    private void data() 
    { 
    //code 

现在,这里是什么在我的TIMER1代码:

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(); 
    } 

这里的错误消息:

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

我还会注意到我使用errormsg在我的//代码的其他语句中使用

//code 
    else 
      { 
       errormsg(); 
      } 

所以我的问题是:

我怎样才能让计时器停止,如果显示在我的文本框(//码)造成一个消息框出现一个错误的值。然后,当一个正确的值显示在一个文本框上,然后点击该按钮,定时器会再次启动?

回答

1

在你的errormsg()函数中停止计时器。当你点击button1时,它会再次启动。

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."); 
    }