【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】データグリッドビューでチェックされた行の背景色を変更する
ではでは。
ディスカッション
コメント一覧
まだ、コメントがありません