为动态创建的Label添加控件

时间:2013-10-28 18:34:34

标签: c# winforms user-interface

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

  • 添加一个Open函数,将打开文件到Click事件

问题在于 该函数如何知道用于打开文件的文本按钮
 即 如果有三个标签,并且用户按下第二个标签,那么Open功能将如何知道按下了哪个标签?

2 个答案:

答案 0 :(得分:2)

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

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

    }
}

编辑:

在您创建标签时订阅该活动:

label.Click += label_Click;

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

答案 1 :(得分:0)

最后,找到了一种方法

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

此处文件的路径位于Label的文本属性