创建事件处理程序

本文关键字:程序 事件处理 创建 | 更新日期: 2023-09-27 17:49:59

所以我在循环中创建了动态标签,一个目录中文件夹列表的标签。

我想,当你点击标签,标签内的文件将显示在一个列表框。但我不能得到我的事件处理程序的工作,是有必要给我的标签一个名字,如所示,我觉得我需要事件的名称,但如果名称是动态的,事件名称需要也是,我不能这样做。此外,我还需要访问事件中的标签属性,所以这就是为什么我创建了一个重载方法,但无论如何,单击标签都不会执行任何事件处理程序。请告知,我将感激不尽。以下是我的循环和事件处理程序中的内容

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

创建事件处理程序

您可以使用sender参数来获取触发事件的当前Label。你不需要重载

public static void lbl_Click(object sender, EventArgs e)
{
    var label = sender as Label;
    if(label != null)
    {
        string text = label.Text;
    }
}