【VB.NET】データグリッドビューで行毎のチェックボックスにイベントを仕込む

2017年12月19日VB.NET,開発

おはようございます。

今回は、データグリッドに配置したチェックボックス列にイベントを仕込みたいと思います。

プログラムは前回のものを流用。

スポンサーリンク

プログラムの修正

新規イベントの追加

データグリッドビューの現在のセル状態が変更された際のイベントを追加します。

新規イベントの追加①

Form1.vb

    ''' <summary>
    ''' データグリッドビューの現在のセル状態が変更された際のイベント
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    Private Sub dgv_CurrentCellDirtyStateChanged(sender As Object, e As EventArgs) Handles dgv.CurrentCellDirtyStateChanged
        ' 対象のセルを判定
        If dgv.CurrentCellAddress.X = 0 AndAlso dgv.IsCurrentCellDirty Then
            ' 変更を確定する
            dgv.CommitEdit(DataGridViewDataErrorContexts.Commit)
        End If
    End Sub

 

データグリッドビューのセル値が変更された際のイベントを追加

新規イベントの追加②

Form1.vb

    ''' <summary>
    ''' データグリッドビューのセル値が変更(が確定)された際のイベント
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    Private Sub dgv_CellValueChanged(sender As Object, e As DataGridViewCellEventArgs) Handles dgv.CellValueChanged

        If (TypeOf dgv(e.ColumnIndex, e.RowIndex) Is DataGridViewCheckBoxCell) Then
            Dim chk As DataGridViewCheckBoxCell = dgv(e.ColumnIndex, e.RowIndex)
            MessageBox.Show(e.RowIndex + 1 & "行目のチェックボックス値:" & chk.Value)
        End If

    End Sub

 

データグリッドビューのセルがクリック(マウスダウン)された際のイベントを追加

新規イベントの追加③

Form1.vb

    ''' <summary>
    ''' データグリッドビューのセルをクリック(マウスダウン)した際のイベント
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    Private Sub dgv_CellMouseDown(sender As Object, e As DataGridViewCellMouseEventArgs) Handles dgv.CellMouseDown
        If (TypeOf dgv(e.ColumnIndex, e.RowIndex) Is DataGridViewCheckBoxCell) Then
            Dim cell As DataGridViewCheckBoxCell = dgv(e.ColumnIndex, e.RowIndex)
            cell.Value = If(cell.Value = False, True, False)
            ' 変更を確定する
            dgv.CommitEdit(DataGridViewDataErrorContexts.Commit)
            dgv.EndEdit()
        End If
    End Sub

 

起動してみる

チェックしてみる
チェックを外してみる

無事に処理できましたね。

まとめ

次回は、チェックされた行の背景色を変更してみたいと思います。

【VB.NET】データグリッドビューでチェックされた行の背景色を変更する

ではでは。

スポンサーリンク


関連するコンテンツ

2017年12月19日VB.NET,開発VB.NET,VisualStudio,サンプルプログラム

Posted by doradora