首页 > 解决方案 > 调用 timer_tick 函数给我没有重载 'timer2_Tick' 匹配委托 'EventHandler'

问题描述

我试图给一个标签作为手电筒效果。我创建了一个名为flashlight. 这是代码的一部分

public void Flashlight(Label lable)
{
    Random rand = new Random();
    int one = rand.Next(0, 255);
    int two = rand.Next(0, 255);
    int three = rand.Next(0, 255);
    int four = rand.Next(0, 255);

    lable.ForeColor = Color.FromArgb(one, two, three, four);
}

public Form1()
{
    InitializeComponent();
    pictureBox2.Size = new Size(82, 82);
    pictureBox3.Size = new Size(82, 82);
    pictureBox3.Enabled = false;
    timer2.Tick += (sender, args) => timer2_Tick(sender, args, label1);
}

private void timer2_Tick(object sender, EventArgs e,Label l)
{
    Flashlight(l);
}

谁能告诉我我在这里想念什么?这是我卡住的代码部分。我收到错误

CS0123 'timer2_Tick' 没有重载匹配委托 'EventHandler'

标签: c#.netvisual-studiowinforms

解决方案


timer2_Tick在代码的其他地方搜索,它应该在里面Form1.Designer.cs然后删除它,那是因为你已经通过双击你的计时器来声明它。因此,您需要在找到后删除以下行:

this.timer2.Tick += new System.EventHandler(this.timer2_Tick);

作为一种更简单的方法,要找到这条线,在你重建你的项目之后,然后在Error列表窗口中双击错误,上面写着:

CS0123 'timer2_Tick' 没有重载匹配委托 'EventHandler'

然后删除该行。


推荐阅读