BETA

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

投稿日:2019-09-13
最終更新:2019-09-13

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

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

ではでは。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@doraxdoraの技術ブログ 主に Java, C#, Python, Javascript の記事を載せていく予定。

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう