Таймер обновления pictureBox при ошибке клика в C # - PullRequest
0 голосов
/ 01 сентября 2011

У меня есть следующий код-

    private void button1_Click(object sender, EventArgs e)
    {
        _soundplayer.Play();
        timer1_Tick();

    }


    private void timer1_Tick()
    {
        pictureBox1.Image = imageList1.Images[imgIndex++];

    }

По какой-то причине это возвращает ошибку в Form1.Designer.cs -

Error 1 No overload for 'timer1_Tick' matches delegate 'System.EventHandler'

При нажатии кнопки 1 изображение в pictureBox1 должно меняться каждые 2 секунды с отметкой таймера, однако я не могу обойти эту ошибку. Пожалуйста, сообщите.

Ответы [ 2 ]

1 голос
/ 01 сентября 2011

Событие Tick - это событие типа EventHandler.Для обработчика события требуются два аргумента:

private void timer1_Tick(object sender, EventArgs e)
{
    pictureBox1.Image = imageList1.Images[imgIndex++];
}

. Для этого необходимо изменить обработчик события Click следующим образом:

private void button1_Click(object sender, EventArgs e)
{
    _soundplayer.Play();
    timer1_Tick(this, EventArgs.Empty);
}

Использование конструктора для добавления обработчиков событий может вас не допуститьнеприятностей, как это.Выберите таймер, щелкните значок молнии в окне «Свойства» и дважды щелкните «Тик».

0 голосов
/ 01 сентября 2011

Запустите таймер, когда вы нажимаете на кнопку. И установите интервал таймера в 2000 миллисекунд. Событие Timer_tick будет создаваться автоматически каждые 2 секунды.

    private void timer1_Tick()
    {
        pictureBox1.Image = imageList1.Images[imgIndex++];

    }       
    private void button1_Click(object sender, EventArgs e)
    {
        _soundplayer.Play();
        timer1_Start();
    }
...