2013-11-02 3 views
1

Я надеюсь найти способ применить шаблон чередующейся строки к одному столбцу datagridview.Как применить чередующийся шаблон строки только к одному столбцу datagridview

У меня есть приложение для окон, использующее vb.net. Прямо сейчас у меня есть шаблон, который изменяет обратную цветность каждой другой ячейки datagridview на другой цвет. Мой рисунок белый, затем голубой. Я включил изображение ниже и мой код. Этот код применяет этот шаблон ко всему datagridview, но я хочу применить его только к одному, например, ко второму индексу столбца.

  With Me.DataGridView1 
       .DefaultCellStyle.BackColor = Color.White 
       .AlternatingRowsDefaultCellStyle.BackColor = Color.AliceBlue 
      End With 

enter image description here

+0

Вы могли бы добавить оператор if, который проверяет имя столбца перед применением вашего стиля? – majjam

ответ

1

можно добавить, если заявление в случае cellformatting вашего DataGridView как это:

Private Sub DataGridView1_ConditionalFormatting_StatusCell(ByVal sender As Object, ByVal e As DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting 
    If e.ColumnIndex = 2 Then 
     With Me.DataGridView1 
      If e.RowIndex Mod 2 = 0 Then 
       e.CellStyle.ForeColor = Color.White 
      Else 
       e.CellStyle.ForeColor = Color.AliceBlue 
      End If 
     End With 
    End If 
End Sub 
+0

Спасибо за ваш ответ. Это все еще не сработает, заявления «DataGridView1.DefaultCellStyle.BackColor = Color.White и DataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.AliceBlue» изменят весь datagridview не только на один столбец. Даже если вы указали, что индекс столбца равен 2, сами эти заявления предназначены для изменения всего документа datagridview. Однако я ценю вашу помощь. :) – stackexchange12

+0

А я вижу, пожалуйста, см. Мое редактирование, которое просто использует модуль, чтобы проверить, четна или нечетна строка, и соответственно назначает цвет – majjam

0

Если вы хотите, чтобы дать альтернативный стиль некоторого столбца из сетки использования cellformating события, как это

Private Sub TDBGrid1_CellFormatting(sender As Object, e As DataGridViewCellFormattingEventArgs) Handles TDBGrid1.CellFormatting 
    With TDBGrid1 
     If Not e.RowIndex Mod 2 = 0 AndAlso e.ColumnIndex > 3 Then 
      e.CellStyle.BackColor = Color.Cyan 
     Else 
      e.CellStyle.BackColor = Color.White 
     End If 
    End With 
    End Sub 

Здесь мне нужен альтернативный стиль для индекса столбца, который больше 3

Смежные вопросы