VB.net DataGridViewで選択された行の色を変える方法
選択された行の色を変える
事前に、データグリッドをリードオンリーにして、用意した処理からのみ、行の色が変わるようにする。
myDgv.ReadOnly = True
コードはこんな感じ。
クリックされたとき、前に選択されていた行の色を元に戻したいので、前に選んでいた行と色を変数に入れています。
Private BeforeBackColor As Color
Private BeforeForeColor As Color
Private BeforeSelectRow As Integer = -1
Private Sub DataGridView_CellContentClick(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles myDgv.CellContentClick
Dim dgv As DataGridView = CType(sender, DataGridView)
If dgv.Columns(e.ColumnIndex).Name = "ボタンカラム" Then
If Me.BeforeSelectRow > -1 Then
dgv.Rows(Me.BeforeSelectRow).DefaultCellStyle.BackColor = Me.BeforeBackColor
dgv.Rows(Me.BeforeSelectRow).DefaultCellStyle.ForeColor = Me.BeforeForeColor
End If
Me.BeforeBackColor = dgv.Rows(e.RowIndex).DefaultCellStyle.BackColor
Me.BeforeForeColor = dgv.Rows(e.RowIndex).DefaultCellStyle.ForeColor
Me.BeforeSelectRow = e.RowIndex
dgv.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.Blue
dgv.Rows(e.RowIndex).DefaultCellStyle.ForeColor = Color.White
End If
End Sub