【VB.NET】DataGridViewにリンク列を配置する

画面イメージ

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

コメント

タイトルとURLをコピーしました