画面イメージ
DataGridViewにリンク列を配置する
VB
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'リンク列を追加
Dim LinkCol As New DataGridViewLinkColumn
With LinkCol
.Name = "Link"
.Text = "詳細"
.UseColumnTextForLinkValue = True
End With
DataGridView1.Columns.Add(LinkCol)
Dim dt As New DataTable
With dt
.Columns.Add("Title", GetType(String))
.Columns.Add("URL", GetType(String))
.Rows.Add("Enter押下をキャンセル", "https://freycode.com/vbnet-dgv-cancelenter")
.Rows.Add("入力チェック", "https://freycode.com/vbnet-dgv-inputcheck")
.Rows.Add("値変更の即時反映", "https://freycode.com/vbnet-dgv-commit")
End With
With DataGridView1
.DataSource = dt
.AllowUserToAddRows = False
.Columns("Title").Width = 120
.Columns("URL").Width = 250
End With
End Sub
リンクセルクリック時にリンク先のWebページを表示する
VB
Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
' リンク列ではない場合、スキップ
If TypeOf DataGridView1.Columns(e.ColumnIndex) IsNot DataGridViewLinkColumn Then Return
'ヘッダの場合、スキップ
If e.RowIndex < 0 Then Return
'選択したセルのURLをGoogleChromeで表示
Dim link As String = DataGridView1(2, e.RowIndex).Value.ToString()
Dim psi As New ProcessStartInfo()
psi.FileName = "C:\Program Files\Google\Chrome\Application\chrome.exe" ' Chrome のパスを指定
psi.Arguments = link ' URL を引数として渡す
Process.Start(psi)
End Sub
コメント