为label数组元素创建事件处理程序

时间:2012-09-18 15:22:02

标签: c# label

我想知道如何为我的标签数组中的每个数组元素分配一个eventHandler。我知道为每个eventHandler创建一个方法是不可能的,那么解决方案是什么呢?谢谢!

for(int i = 0, i < 10; i++)
{
    lbs[i] = new Label();
    lbs[i].Location = new System.Drawing.Point(76 + f, 164);
    lbs[i].Size = new System.Drawing.Size(49, 17);
    //able to perform this, but wont able to create a method for this
    lbs[i].Click += new System.EventHandler(lbs[i]_Click);
}

//can't do this, what is alternative?
public void lbs[i]_Click(object sender, EventArgs e)
{

}

1 个答案:

答案 0 :(得分:3)

您的函数名称无效(函数名称中不能包含[])尝试将lbs[i]_Click更改为lbs_Click

for(int i = 0; i < 10; i++)
{
    lbs[i] = new Label();
    lbs[i].Location = new System.Drawing.Point(76 + f, 164);
    lbs[i].Size = new System.Drawing.Size(49, 17);
    lbs[i].Name = "label" + i;

    //able to perform this, but wont able to create a method for this
    lbs[i].Click += new System.EventHandler(lbsi_Click);
}

public void lbsi_Click(object sender, EventArgs e)
{
    var label = sender as Label;
    if(label != null && label.Name == "label1"){
        //event was raised from label1
    }
}