2008-12-02 2 views
2

Сетка отображает всю информацию правильно, в случае dataGridView1cellFormatting Я изменяю цвет фона в зависимости от объекта под значением строки. Это тоже работает. Последнее событие, которое у меня есть на моей сетке, - это dataGridView1_CellPainting, который проверяет, есть ли заголовок для добавления значка.DataGridView SelectLine не имеет значения?

Все в порядке, пока я не попытаюсь вынуть цвет выбранной линии (или ячейки он делает то же самое). Я бы хотел, чтобы вы выбрали цвет выбранной линии. Я пытаюсь установить его с помощью «Прозрачный», но когда данные привязки управления привязаны, линия серая, и когда мы изменяем размер столбца, текст не читается.

Как я могу отобразить данные внутри DataGridView без выделения выделенной строки?

ответ

5

Вы можете установить свойства SelectionForeColor и SelectionBackColor того цвета, который хотите изменить цвет подсветки. Это можно установить либо в свойстве DefaultCellStyle в DataGridView, либо в отдельных ячейках. Таким образом, цвета не будут меняться при выборе строки.

Private Sub dgv_CellFormatting(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles dgv.CellFormatting 
    If e.RowIndex < 0 Then Exit Sub 

    If e.RowIndex Mod 2 = 0 Then 
     e.CellStyle.BackColor = Color.Orange 
    Else 
     e.CellStyle.BackColor = Color.Red 
    End If 

    'Make the selected cell the same color 
    e.CellStyle.SelectionBackColor = e.CellStyle.BackColor 
    e.CellStyle.SelectionForeColor = e.CellStyle.ForeColor 
End Sub 
Смежные вопросы