Как я могу выделить текущую ячейку в DataGridView когда SelectionMode=FullRowSelect

У меня есть доступный для редактирования DataGridView с набором SelectionMode к FullRowSelect (таким образом, целая строка выделяется, когда пользователь нажимает на любую ячейку). Однако я хотел бы ячейку, которая в настоящее время фокусируется, чтобы быть выделенной с другим задним цветом (таким образом, пользователь может ясно видеть, какую ячейку они собираются отредактировать). Как я могу сделать это (я не хочу изменять SelectionMode)?

5
задан Ricardo Altamirano 14 August 2012 в 17:29
поделиться

2 ответа

Я выяснил лучший способ сделать это, с помощью события CellFormatting:

Private Sub uxContacts_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles uxContacts.CellFormatting
    If uxContacts.CurrentCell IsNot Nothing Then
        If e.RowIndex = uxContacts.CurrentCell.RowIndex And e.ColumnIndex = uxContacts.CurrentCell.ColumnIndex Then
            e.CellStyle.SelectionBackColor = Color.SteelBlue
        Else
            e.CellStyle.SelectionBackColor = uxContacts.DefaultCellStyle.SelectionBackColor
        End If
    End If
End Sub
9
ответ дан 13 December 2019 в 22:19
поделиться

Вы хотите использовать метод DataGridView RowPostPaint. Позвольте платформе потянуть строку, и впоследствии возвратиться и раскрасить ячейку, которой Вы интересуетесь.

Пример здесь в MSDN

0
ответ дан 13 December 2019 в 22:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: