定时器在C#中点击错误更新pictureBox

时间:2011-09-01 13:40:07

标签: c# forms timer picturebox

我有以下代码 -

    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'

当点击button1时,pictureBox1中的图像应该每2秒更改一次计时器滴答,但是我无法通过此错误。请指教。

2 个答案:

答案 0 :(得分:1)

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

使用设计器添加事件处理程序可以让您远离这样的麻烦。选择计时器,单击“属性”窗口中的闪电图标,然后双击“勾选”。

答案 1 :(得分:0)

单击按钮时启动计时器。并将计时器间隔设置为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();
    }