Изменение цвета выделенной строки в 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
следующий рисунок с помощью мыши над случайной не выбранной строки. Бежевый-это цвет я хочу показывать.
это изображение с помощью мыши над текущей выбранной строки. Я хочу, чтобы backcolor изменился на BlanchedAlmond, когда мышь над ним.
Итак, я изменил мышление и попытался использовать MouseEnter, чтобы сделать эту строку выбранной. Отлично работает. Но он оставляет строку выбранной, когда мышь покидает datagrid и переходит к другой (плохой). Я попытался установить выбранный 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
Помогите Пожалуйста :)
1 ответов
заставил его работать.
я использовал DefaultCellStyle вместо RowsDefaultCellStyle. Вот окончательный код.
Private Sub dgvPrjDwgs_CellMouseEnter(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvPrjDwgs.CellMouseEnter
dgvPrjDwgs.RowsDefaultCellStyle.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.RowsDefaultCellStyle.SelectionBackColor = Color.DimGray
End Sub