我有一个包含功能列表的类,我想为该列表中的每个项添加一个链接标签。这样做时,我无法显示所有功能,只能显示第一个功能。我拥有的最小代码片段是:
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());
};
}
我得到的结果是:
我期望得到的是类似的东西:
第二张图片不是添加的单个标签,而是长文本字符串。请参阅下面的代码段。
finalstring += element.name + "\n"
我做错了什么?
答案 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";
}