DataGridViewLinkColumn 格式化
DataGridViewLinkColumn formatting
我的申请是 VB 中的 windows 表单申请。
我的应用程序中有 DataGridView。第七列在我设计DataGridView时定义为DataGridViewLinkColumn。我的应用程序从 table 读取 link 并且网格正确显示它。
我不想让我的用户看到 link,我希望他们看到像 "Click here to visit" 这样的句子,但我做不到。
其次,当我点击 link 时没有任何反应。我知道我必须在 CellContentClick 事件中处理这个,但我不知道如何调用指向 link.
的默认浏览器
提前致谢。
在DataGridViewLinkColumn
中没有直接的属性将显示文字和url分开。
为了实现您的目标,您需要处理两个事件 CellFormatting
和 CellContentClick
。订阅这些活动。
在 CellFormatting
事件处理程序中,将格式化值更改为 Click here to visit
。标志 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
要在默认浏览器中打开 link,请使用 Process
class 并将 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
我的申请是 VB 中的 windows 表单申请。
我的应用程序中有 DataGridView。第七列在我设计DataGridView时定义为DataGridViewLinkColumn。我的应用程序从 table 读取 link 并且网格正确显示它。
我不想让我的用户看到 link,我希望他们看到像 "Click here to visit" 这样的句子,但我做不到。
其次,当我点击 link 时没有任何反应。我知道我必须在 CellContentClick 事件中处理这个,但我不知道如何调用指向 link.
的默认浏览器提前致谢。
在DataGridViewLinkColumn
中没有直接的属性将显示文字和url分开。
为了实现您的目标,您需要处理两个事件 CellFormatting
和 CellContentClick
。订阅这些活动。
在 CellFormatting
事件处理程序中,将格式化值更改为 Click here to visit
。标志 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
要在默认浏览器中打开 link,请使用 Process
class 并将 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