Я пытаюсь настроить 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
На следующей картинке мышка находится над случайной невыбранной строкой. Бежевый — это основной цвет, который я хочу показать.
На этой картинке мышка находится над выбранной в данный момент строкой. Я хочу, чтобы задний цвет менялся на BlancchedAlmond, когда мышь находилась над ним.
Итак, я передумал и попытался использовать 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
Помогите пожалуйста :)