Как вставить LinkLabel в DataGridViewCell C#

Попытка найти способ создать DataGridViewCell, который поддерживает несколько ссылок, например:

Несколько ссылок в примере GridView

Я знаю, что об этом спрашивали тысячу раз (я провел день, прочесывая их), но, пожалуйста, выслушайте меня. Я хотел бы, чтобы одна ячейка содержала несколько ссылок, разделенных запятыми. Я нашел способ сделать это с помощью LinkLabel:

var addresses = new List<string>
{
    "http://www.example.com/page1",
    "http://www.example.com/page2",
    "http://www.example.com/page3",
};

var stringBuilder = new StringBuilder();
var links = new List<LinkLabel.Link>();

foreach (var address in addresses)
{
    if (stringBuilder.Length > 0) stringBuilder.Append(", ");

    // We cannot add the new LinkLabel.Link to the LinkLabel yet because
    // there is no text in the label yet, so the label will complain about
    // the link location being out of range. So we'll temporarily store
    // the links in a collection and add them later.
    links.Add(new LinkLabel.Link(stringBuilder.Length, address.Length, address));
    stringBuilder.Append(address);
}

// We must set the text before we add the links.
linkLabel1.Text = stringBuilder.ToString();
foreach (var link in links)
{
    linkLabel1.Links.Add(link);
}
linkLabel1.AutoSize = true;
linkLabel1.LinkClicked += (s, e) =>
{
    MessageBox.Show((string)e.Link.LinkData);
};

LinkList с выводом нескольких ссылок

Я не могу найти способ добавить этот LinkList к DataGridViewCell. Можно ли каким-то образом вставить этот LinkLabel в DataGridViewCell и при этом по-прежнему работать правильно? Или эту же функциональность можно каким-то образом получить, используя DataGridViewLinkColumn?

0 ответов

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