Создание динамически создаваемых ссылочных ярлыков в Winforms

Я делаю программу, которая позволит пользователю нажимать на название компании, созданное метками динамической ссылки.

Я никогда не использовал ярлыки ссылок в C#, прежде чем хотел узнать, как это сделать. Количество предприятий, которые могут быть созданы для конкретного пользователя, варьируется, поэтому количество ссылок для каждого пользователя не одинаково.

Затем я хочу захватить бизнес-идентификатор, чтобы сделать вызов 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; }
}

Что мне нужно сделать, чтобы получить идентификатор предприятия по щелчку названия компании?

Я смотрел на динамическое создание ярлыков ссылок с помощью foreach в C#, но это не сильно помогло

2 ответа

Решение

Объявить обработчик кликов:

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

Установить Tag собственность LinkLabel равный этому вашему business.businessID имущество. Добавить обработчик для LinkLabel и когда предмет щелкает, бросьте sender к LinkLabel и получить доступ к Tag имущество.

Другие вопросы по тегам