3

我正在制作一个程序,允许用户单击由动态链接标签创建的公司名称。

在想知道如何做到这一点之前,我从未在 C# 中使用过链接标签。可为特定用户生成的业务数量各不相同,因此每个用户的链接标签数量不同。

然后我想捕获业务 ID 以进行 Json 调用。

我填充公司名称的代码

// fill in the business names as linked labels
if (GlobalClass.Businesses != null)
{
     tableLayoutPanel.Controls.Clear();                     

     foreach (var business in GlobalClass.Businesses)
     {
          tableLayoutPanel.Controls.Add(new LinkLabel { Text = business.businessName.ToString() });
     }
}

商务舱看起来像这样,上面的商务商务是一个列表。

public class Business
{
    public string businessID { get; set; }
    public string businessName { get; set; }
}

我需要做什么才能在单击企业名称时捕获企业 ID?

我已经查看了在 c# 中使用 foreach 动态创建链接标签,但它并没有太大帮助

4

2 回答 2

5

声明点击处理程序:

private void MyLinkClick(object sender, ...)
{
    var linkLabel = (LinkLabel) sender;
    var business = (Business) linkLabel.Tag;
    /* do something with business */
}

改变你的 foreach:

foreach (var business in GlobalClass.Businesses)
{
     var linkLabel = new LinkLabel { Text = business.businessName.ToString(), Tag = business };
     linkLabel.Click += MyLinkClick;
     tableLayoutPanel.Controls.Add(linkLabel);
}
于 2013-11-12T16:17:43.990 回答
1

将equal的Tag属性设置为您的属性。为该添加一个处理程序,当单击该项目时,将其转换为 a并访问该属性。LinkLabelbusiness.businessIDLinkLabelsenderLinkLabelTag

于 2013-11-12T16:17:53.950 回答