2019-09-13に投稿

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

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

プログラムは前回のものを流用。
【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 &amp; "行目のチェックボックス値:" &amp; 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】データグリッドビューでチェックされた行の背景色を変更する

ではでは。

Originally published at www.doraxdora.com
ツイッターでシェア
みんなに共有、忘れないようにメモ

doraxdora

IT関係の仕事をしています/1985年生まれの東京在住/便利なサービスやツール漁りや料理などが好き/2017年~ブログやってます/自分でサービスとか作ってリリースしたい/何かありましたらお気軽にDMどうぞ

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント