2016-02-22 6 views
0

Я хочу покрасить целые строки System.Windows.Forms.DataGrid на основе содержимого одной ячейки строки.
Я не мог найти никакого способа сделать это, поскольку нет .Rows -Процесс DataGrid или .Row -Процесс DataGridTextBoxColumn (или любого подобного).
Поиск решений в Интернете также не помог мне до сих пор.
. К сожалению, не удаленный доступ к DataGridView.изменить цвет строки DataGrid

Итак, остается вопрос: как изменить цвет строки DataGrid?

+1

взглянуть на это, может быть, это поможет вам https://msdn.microsoft.com/en-gb/library/ms996485.aspx или этот сайт http://www.codemag.com/article/0301071 – Monty

+0

Вы просто зацикливаете все ячейки строки и редактируете фон таким образом. – Oceans

ответ

0

Благодаря this link (предоставленный @Monty) Я смог решить проблему.

Вы должны форматировать каждую ячейку по себе, так что вы должны подключить на SetCellFormat -Event каждой колонке:

AddHandler column.SetCellFormat, AddressOf FormatGridRow 

В EventHandler можно проверить, например, значение ячейки другого столбца той же строки и соответственно изменить цвет текущей ячейки. Когда каждая ячейка строки форматируется таким образом, кажется, что строка в целом отформатирована.

Private Sub FormatGridRow(ByVal sender As Object, ByVal e As DataGridFormatCellEventArgs) 
    Dim Cell As DataGridColumnStyle = sender 
    Dim ColumnStyles As GridColumnStylesCollection = Cell.DataGridTableStyle.GridColumnStyles 
    Dim columnIndex As Integer = ColumnStyles.IndexOf(ColumnStyles.Item("ColumnName")) 

    If Cell.DataGridTableTableStyle.DataGrid(e.Row, columnIndex).ToString() = "SomeValue" Then 
     e.BackBrush = New SolidBrush(Color.Red) 'this does only change the Cell`s background 
    End If 
End Sub 
+0

рад оказать помощь .... и удачи в ФК Аугсбург тоже, когда они придут играть в «Ливерпуль» за второй матч в Лиге Европы ... от болельщика «Арсенала» .... LOL – Monty

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