为动态创建的标签添加控件

本文关键字:添加 控件 标签 动态 创建 | 更新日期: 2023-09-27 18:37:22

我正在制作一个GUI程序,它将显示一些文件的路径(根据用户输入)由于标签是根据用户输入制作的,因此它们是动态创建的。我希望当用户单击标签时,打开相应的文件(显示其文本)。我已经将所有创建的标签存储在一个列表中。我想到了以下解决此问题的方法

  • 添加一个打开函数,该函数将打开文件到单击事件

问题是
函数如何知道使用哪些按钮文本来打开文件
即如果有三个标签,并且用户按下第二个标签,打开功能如何知道按下了哪个标签?

为动态创建的标签添加控件

为标签指定唯一名称,为它们分配相同的点击事件,并使用开关:

private void label_Click(object sender, EventArgs e)
{    
    switch(((Label)sender).Name)
    {
       case "Label1": 
            //........ 
          break;
    }
}

编辑:

只需在创建标签时订阅活动即可:

label.Click += label_Click;

如果您查看设计器代码,这就是您在 UI 中设置事件时所做的一切

终于想出了一个办法

    private void LabelClick(object sender, EventArgs e)
    {
        string Path = ((Label)sender).Text ;
        System.Diagnostics.Process.Start(Path) ; 
     }

此处文件的路径位于标签的文本属性中