【VB.NET】DataGridView上でクリックしたセルの値を取得する方法

使えるイベント

特徴
CellClickイベントセル内を左クリックしたときに発生する
CellMouseDownイベントセル内をクリックしたときに発生する
左クリック以外のマウス操作(右クリック、ミドルクリック等でも発生する

【CellClickイベント】左クリックされたセルの値を取得

VB
    Private Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick

        '行ヘッダ・列ヘッダの場合、スキップ
        If e.RowIndex < 0 Then Return
        If e.ColumnIndex < 0 Then Return

        MessageBox.Show(DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value.ToString)

    End Sub

【CellMouseDownイベント】右クリックされたセルの値を取得

VB
     Private Sub DataGridView1_CellMouseDown(sender As Object, e As DataGridViewCellMouseEventArgs) Handles DataGridView1.CellMouseDown

      '行ヘッダ・列ヘッダの場合、スキップ
      If e.RowIndex < 0 Then Return
      If e.ColumnIndex < 0 Then Return

      '右クリックの場合
      If e.Button = MouseButtons.Right Then
          MessageBox.Show(DataGridView1(e.ColumnIndex, e.RowIndex).Value)
      End If

  End Sub

動作確認用コード

VB
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        Dim dt As New DataTable
        With dt
            .Columns.Add("Col1", GetType(String))
            .Columns.Add("Col2", GetType(String))
            .Rows.Add("A001", "B001")
            .Rows.Add("A002", "B002")
        End With
        
        With DataGridView1
            .DataSource = dt
        End With

    End Sub

コメント

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