如何将LinkLabel插入DataGridViewCell C#

如何将LinkLabel插入DataGridViewCell C#,c#,winforms,datagridview,datagridviewcolumn,datagridviewlinkcolumn,C#,Winforms,Datagridview,Datagridviewcolumn,Datagridviewlinkcolumn,试图找到一种方法来创建支持多个链接的DataGridViewCell,如下所示: 我知道这已经被问了一千次了(我花了一天的时间来梳理它们),但请听我说完。我想一个单元格包含多个由逗号分隔的链接。我找到了一种使用LinkLabel的方法: var addresses = new List<string> { "http://www.example.com/page1", "http://www.example.com/page2", "http://www.e

试图找到一种方法来创建支持多个链接的DataGridViewCell,如下所示:

我知道这已经被问了一千次了(我花了一天的时间来梳理它们),但请听我说完。我想一个单元格包含多个由逗号分隔的链接。我找到了一种使用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);
};
var地址=新列表
{
"http://www.example.com/page1",
"http://www.example.com/page2",
"http://www.example.com/page3",
};
var stringBuilder=新的stringBuilder();
var links=新列表();
foreach(地址中的变量地址)
{
如果(stringBuilder.Length>0)stringBuilder.Append(“,”);
//我们无法添加新的LinkLabel。链接到LinkLabel,因为
//标签中还没有文本,因此标签会抱怨
//链接位置超出范围。因此我们将临时存储
//在集合中添加链接,并在以后添加它们。
添加(新的LinkLabel.Link(stringBuilder.Length,address.Length,address));
stringBuilder.Append(地址);
}
//我们必须在添加链接之前设置文本。
linkLabel1.Text=stringBuilder.ToString();
foreach(链接中的var链接)
{
linkLabel1.Links.Add(link);
}
linkLabel1.AutoSize=true;
linkLabel1.LinkClicked+=(s,e)=>
{
MessageBox.Show((字符串)e.Link.LinkData);
};


我找不到将此链接列表添加到DataGridViewCell的方法。是否有可能以某种方式将此链接标签插入DataGridViewCell中,并且仍能正常工作?或者,通过使用DataGridViewLinkColumn可以以某种方式获得相同的功能吗?

请参见:并用LinkLabel替换NumericUpDown。我正在尝试这一点,而且非常激烈。此外,像这个自定义单元格那样绘制简单文本并不像处理多个链接那样困难。也许我就在这里。