我正在寻找一些关于如何将单击事件处理程序添加到已在循环中动态创建的标签的建议。
我在动态创建的控件上搜索了click事件处理程序,但这总是会返回不在数组中的单个控件。
代码示例:
//create an array of 16 labels
Label[] label = new Label[16];
//loop through the array of labels
for (int i = 0; i < label.Length; i++)
{
label[i] = new Label(); //create new label
label[i].Name = "lbl" + i.ToString(); //give the label a name
label[i].Text = "label " + i.ToString(); //give the label text
}
对此有任何帮助和建议都很棒,谢谢!
答案 0 :(得分:3)
添加处理程序:
label[i].Click += HandleLabelClick;
void HandleLabelClick(object sender, EventArgs e)
{
// ...
}
请注意,您可以使用sender
参数确定单击了哪个标签:
void HandleLabelClick(object sender, EventArgs e)
{
var label = (Label) sender;
if (label.Text == "this or that") { /* ... */ }
}