Vb.net DataGridViewLinkColumn格式

Vb.net DataGridViewLinkColumn格式,vb.net,winforms,datagridview,datagridviewlinkcolumn,Vb.net,Winforms,Datagridview,Datagridviewlinkcolumn,我的应用程序是VB中的windows窗体应用程序 我的应用程序中有DataGridView。当我设计DataGridView时,第七列被定义为DataGridViewLinkColumn。我的应用程序从表中读取链接,并正确地显示它 我不想让我的用户看到链接,我想让他们看到像“单击此处访问”这样的句子,但我无法做到这一点 第二,当我点击链接时,什么也没发生。我知道我必须在CellContentClick事件中处理此问题,但我不知道如何调用指向链接的默认浏览器 提前感谢。DataGridViewLi

我的应用程序是VB中的windows窗体应用程序

我的应用程序中有DataGridView。当我设计DataGridView时,第七列被定义为DataGridViewLinkColumn。我的应用程序从表中读取链接,并正确地显示它

我不想让我的用户看到链接,我想让他们看到像“单击此处访问”这样的句子,但我无法做到这一点

第二,当我点击链接时,什么也没发生。我知道我必须在CellContentClick事件中处理此问题,但我不知道如何调用指向链接的默认浏览器


提前感谢。

DataGridViewLinkColumn中没有用于分隔显示文本和url的直接属性

为了实现您的目标,您需要处理两个事件CellFormatting和CellContentClick。订阅这些活动

在CellFormatting事件处理程序中,将格式化值更改为单击此处访问。必须将标志FormattingApplied设置为True,因为这会阻止进一步格式化值

Private Sub dataGridView1_CellFormatting(sender As Object, e As DataGridViewCellFormattingEventArgs)
    If e.ColumnIndex = 'link column index Then
        e.Value = "Click here to visit";
        e.FormattingApplied = True;
    End If
End Sub
要在默认浏览器中打开链接,请使用Process类并将url作为参数传递给Start方法。将代码放入CellContentClick事件处理程序中

Private Sub dataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs)
    If e.ColumnIndex = 'link column index Then
        Process.Start(dataGridView1(e.ColumnIndex, e.RowIndex).Value.ToString());
    End If
End Sub

非常感谢朱奈特@梅廷·切丁,很高兴为您提供帮助: