Не могу остановить таймер - PullRequest
0 голосов
/ 14 мая 2011

Я не могу остановить этот таймер:

    private void startTimer_Click(object sender, EventArgs e)
    {
        AppTimer.Enabled = true;
    }

    private void AppTimer_Tick(object sender, EventArgs e)
    {
        if (BarreProgression.Value < BarreProgression.Maximum)
        {
            ...
            BarreProgression.Value = BarreProgression.Value + 1;
        }
        else if (BarreProgression.Value == BarreProgression.Maximum)
        {

            MessageBox.Show("Finished");
            //AppTimer.Stop();
            AppTimer.Enabled = false;  
        }
    }

У меня бесконечное количество ящиков сообщений!Есть идеи?

Ответы [ 3 ]

4 голосов
/ 14 мая 2011

MessageBox блокирует выполнение до тех пор, пока пользователь не закроет его, поэтому сначала остановите таймер, затем покажите сообщение, или вы получите спам от Windows:

AppTimer.Enabled = false;  
MessageBox.Show("Finished");
2 голосов
/ 14 мая 2011

Попробуйте переместить остановку таймера на одну строчку выше:

        else if (BarreProgression.Value == BarreProgression.Maximum)
    {

        // This should be above the message box.
        AppTimer.Enabled = false;  
        MessageBox.Show("Finished");
    }
1 голос
/ 14 мая 2011

попробуйте,

 if (BarreProgression.Value < BarreProgression.Maximum)
        {
            ...
            BarreProgression.Value = BarreProgression.Value + 1;
        }
        else if (BarreProgression.Value == BarreProgression.Maximum)
        {

            //AppTimer.Stop();
            AppTimer.Enabled = false;  
            MessageBox.Show("Finished");
        }
...