Изменение цвета фона выбранной строки в datagridview при наведении курсора

Я пытаюсь настроить DataGridView в форме так, чтобы подсвечивалась строка под мышью. У меня есть работа со следующим, за исключением того, что выбранная в данный момент строка не будет выделяться на MouseEnter.

Формы содержат 4 отдельных DataGridView, и единственная выделенная строка должна находиться под курсором мыши.

Private Sub dgvPrjDwgs_CellMouseEnter(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvPrjDwgs.CellMouseEnter
        If e.RowIndex > -1 Then
            dgvPrjDwgs.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.BlanchedAlmond
        End If
End Sub

Private Sub dgvPrjDwgs_CellMouseLeave(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvPrjDwgs.CellMouseLeave
        If e.RowIndex > -1 Then
            dgvPrjDwgs.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.DimGray
        End If
End Sub

На следующей картинке мышка находится над случайной невыбранной строкой. Бежевый — это основной цвет, который я хочу показать.

Highlight, highlight, you so fine, you so fine you blow my mind!

На этой картинке мышка находится над выбранной в данный момент строкой. Я хочу, чтобы задний цвет менялся на BlancchedAlmond, когда мышь находилась над ним.

Why you no highlight when I want.

Итак, я передумал и попытался использовать MouseEnter, чтобы сделать эту строку выбранной. Это прекрасно работает. Но он оставляет строку выбранной, когда мышь покидает сетку данных и переходит к другой (плохо). Я попытался установить выбранный BackColor в соответствии с невыбранным BackColor, и теперь он вообще не выделяется.

Private Sub dgvPrjDwgs_CellMouseEnter(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvPrjDwgs.CellMouseEnter
    dgvPrjDwgs.DefaultCellStyle.SelectionBackColor = Color.BlanchedAlmond
    If e.RowIndex > -1 Then
        dgvPrjDwgs.Rows(e.RowIndex).Selected = True
    End If
End Sub
Private Sub dgvPrjDwgs_CellMouseLeave(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvPrjDwgs.CellMouseLeave
    dgvPrjDwgs.DefaultCellStyle.SelectionBackColor = Color.DimGray
End Sub

Помогите пожалуйста :)

6
задан bluesixty 3 April 2012 в 00:26
поделиться