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

在想知道如何做到这一点之前,我从未在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?

我看过Dynamically creating Link Labels using foreach in c#,但并没有太大帮助

最佳答案

声明点击处理程序:

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);
}

关于c# - 在Winforms中使动态创建的链接标签可单击,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19934186/

10-09 00:17