为功能列表添加链接标签

时间:2014-11-10 03:51:31

标签: c# oop linked-list

我有一个包含功能列表的类,我想为该列表中的每个项添加一个链接标签。这样做时,我无法显示所有功能,只能显示第一个功能。我拥有的最小代码片段是:

            foreach (var element in agol.orgServices.services)
            {
                var linkLabel = new LinkLabel();
                linkLabel.Text = element.name + "\n";
                linkLabel.Links.Add(new LinkLabel.Link(i, element.url.Length, element.url));
                i = linkLabel.Text.Length;
                ServicesTab.Controls.Add(linkLabel);
                linkLabel.LinkClicked += (s, z) =>
                    {
                        System.Diagnostics.Process.Start(z.Link.LinkData.ToString());
                    };
            }

我得到的结果是:

What I get

我期望得到的是类似的东西:

Results I want

第二张图片不是添加的单个标签,而是长文本字符串。请参阅下面的代码段。

finalstring += element.name + "\n"

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我解决了。链接标签堆叠在一起,所以我必须包含一个增量:

int i=0;
            int yi = 30;
            int y = 7;
            int x = 2;

            foreach (var element in agol.orgServices.services)
            {
                var linkLabel = new LinkLabel();
                linkLabel.Name = element.name;
                linkLabel.Text = element.name + "\n";
                linkLabel.Location = new Point(x, y);
                linkLabel.AutoSize = true;
                linkLabel.Links.Add(new LinkLabel.Link(i, element.name.Length, element.url));
                ServicesTab.Controls.Add(linkLabel);
                linkLabel.LinkClicked += (s, z) =>
                    {
                       System.Diagnostics.Process.Start(z.Link.LinkData.ToString());
                    };

                y += yi;

                //finalServiceList += element.name + "\n";
            }