C#如果显示消息框,则停止计时器

时间:2017-04-23 22:25:14

标签: c# timer

当我在文本框上写错了并单击按钮时,弹出一个消息框,并且因为我有一个计时器而一直弹出。

所以我想制作一个if语句,如果显示消息框,则停止计时器,直到再次点击该按钮。

我试过用这个:

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

我还会注意到我在我的//代码

上的else语句中使用了errormsg
//code
    else
            {
                errormsg();
            }

所以我的问题是:

如果我的文本框(//代码)上显示错误的值导致出现消息框,如何使计时器停止。然后,当文本框上显示正确的值,然后单击按钮,计时器将再次启动?

1 个答案:

答案 0 :(得分: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.");
    }