Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 动态链接标签_C#_Linklabel - Fatal编程技术网

C# 动态链接标签

C# 动态链接标签,c#,linklabel,C#,Linklabel,我一直在阅读动态链接标签,但还没有找到我的答案。在我的代码中,我正在读取一个.csv文件,其中包含检查行的基本设置,如果每三行都已填充,则为链接。请注意,这些都在一个桌面布局面板中。我正在创建这样的标签: tableLayoutPanel1.Controls.Add(new LinkLabel() { Text = "TEST",Name = count.ToString(),Tag = @"N:\reuther", Anchor = AnchorStyles.Left, Aut

我一直在阅读动态链接标签,但还没有找到我的答案。在我的代码中,我正在读取一个.csv文件,其中包含检查行的基本设置,如果每三行都已填充,则为链接。请注意,这些都在一个桌面布局面板中。我正在创建这样的标签:

        tableLayoutPanel1.Controls.Add(new LinkLabel() { Text = "TEST",Name = count.ToString(),Tag = @"N:\reuther", Anchor = AnchorStyles.Left, AutoSize = true }, 2, 3);
我遇到的问题是,其中一些列可能是空的,这意味着我真的不知道在任何时候我总共会有多少列。我在网上看到的任何注释,命名动态链接,然后继续使用一个私有函数,通过名称检测特定链接是否被单击。我不能这样做,因为在运行之前我永远不知道需要多少链接。在我的示例中,我可以(并且确实)命名链接,是否仍然可以使用泛型的.Click事件来检测任何单击,在这一点上,我可以让它通过标记打开路径?还有别的办法吗


谢谢。

再做一点修补,我就解决了这个问题

LinkLabel[]LinkLabel=新的LinkLabel[100]

        linkLabel[count] = new LinkLabel();
        linkLabel[count].Tag = @"N:\reuther";
        linkLabel[count].Text = "Click Me";
        tableLayoutPanel1.Controls.Add(linkLabel[count], 3, 4);

    private void LinkedLabelClicked(object sender, LinkLabelLinkClickedEventArgs e)
    {
        string filepath = ((LinkLabel)sender).Tag.ToString();
        System.Diagnostics.Process.Start(filepath);
    }
在这个方法中,我创建了一个存储100个链接标签的数组。在创建链接时,我使用计数方法来计算已创建的链接数。对于每个链接,我都使用.Tag设置文件路径,最后将字符串filepath设置为标记,这样我就可以在后面用行打开它。多谢各位