所以我在循环中创建动态标签,标记目录中的文件夹列表。
我想,当您点击标签时,标签中的文件将显示在列表框中。但我不能让我的事件处理程序工作,是否有必要给我的标签一个名称如图所示,我觉得我需要事件的名称,但如果名称是动态的,事件名称也需要也是我不能做那。此外,我将需要访问事件中的标签属性,这就是为什么我创建了一个重载方法,但无论如何,单击标签不会执行任何事件处理程序。请指教,我很感激。这是我的循环和我的事件处理程序中的最新内容
string str = lstMovieFolders[i];
Label lbl = new Label();
lbl.Name = "lbl" + str;
lbl.Location = new Point(25, intStartPoint);
lbl.Text = str;
lbl.Size = new Size(x, y);
lbl.Click += new EventHandler(lbl_Click);
grp.Controls.Add(lbl);
intStartPoint += 30;
public static void lbl_Click(object sender, EventArgs e)
{
MessageBox.Show("HELLOS");
}
public static void lbl_Click(object sender, EventArgs e, Label lbl)
{
MessageBox.Show("HELLO");
}
答案 0 :(得分:1)
您可以使用sender
参数来获取触发事件的当前Label
。您不需要重载
public static void lbl_Click(object sender, EventArgs e)
{
var label = sender as Label;
if(label != null)
{
string text = label.Text;
}
}