【问题标题】:Making dynamically created linklabels clickable in Winforms在 Winforms 中使动态创建的链接标签可点击
【发布时间】:2013-11-12 16:11:10
【问题描述】:

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

在想知道如何做到这一点之前,我从未在 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#,但没有多大帮助

【问题讨论】:

    标签: c# winforms linklabel


    【解决方案1】:

    声明点击处理程序:

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

    【讨论】:

    • 感谢您的快速回复 Zergatul。
    【解决方案2】:

    LinkLabelTag 属性设置为等于business.businessID 属性的属性。 为LinkLabel 添加一个处理程序,当单击该项目时,将sender 转换为LinkLabel 并访问Tag 属性。

    【讨论】:

      猜你喜欢
      • 2016-02-13
      • 2013-07-10
      • 2016-07-31
      • 2022-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-18
      相关资源
      最近更新 更多