简体   繁体   中英

How to use DataGridViewLinkColumn for display a Link in one columns

I try to put data into DataGridView and have one column for display a "link" but it create columns from amount of "link data"

ArrayList row = new ArrayList();
foreach (S3Object entry in response.S3Objects)
{
    row = new ArrayList();
    row.Add(Path.GetFileName(entry.Key.ToString()));
    row.Add((double)entry.Size / 1024 / 1024 + " MB");
    row.Add(entry.LastModified);
    row.Add(entry.Owner.DisplayName);
    DTGfilenames.Rows.Add(row.ToArray());

    DataGridViewLinkColumn dgvLink = new DataGridViewLinkColumn();
    dgvLink.UseColumnTextForLinkValue = true;
    dgvLink.LinkBehavior = LinkBehavior.SystemDefault;
    dgvLink.HeaderText = "Preview";
    dgvLink.Name = "URLHERE";
    dgvLink.LinkColor = Color.Blue;
    dgvLink.TrackVisitedState = true;
    dgvLink.Text = "URLHERE";
    dgvLink.UseColumnTextForLinkValue = true;
    Console.WriteLine(dgvLink.Name + "  " + dgvLink.Text);
    DTGfilenames.Columns.Add(dgvLink);
}

当前结果

Its creates new column because of DTGfilenames.Columns.Add(dgvLink); inside the foreach loop.

If there is 10 items in array it will loop 10x and create column link 10x.

But you can try to remove DataGridViewLinkColumn dgvLink = new DataGridViewLinkColumn(); inside the loop and paste it before the loop

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM