Невозможно изменить цвет фона ячеек DataGridView - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь перебрать строки в сетке данных и изменить цвет отдельной ячейки в зависимости от ее сохраненного значения.

Я пробовал два метода ниже, но ни одна из них не работает, и никаких исключений не выдается.

1:

row.Cells[8].Style.BackColor = Color.Red;

2:

dgvProperties[row.Index, 8].Style.BackColor = Color.Red;

3 (еще одна попытка после написания этого вопроса также не работает):

dgvProperties.Rows[row.Index].Cells[8].Style.BackColor = Color.Red;

Любая помощь приветствуется.

Ответы [ 3 ]

0 голосов
/ 04 января 2019

Попробуйте, я думаю, это то, что вы ищете ..

for(int i = 0; i < dataGridView1.Rows.Count; i++)
        {
            int val = Int32.Parse(dataGridView1.Rows[i].Cells[2].Value.ToString());
            if (val < 5)
            {
               dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Red;
            }

Кредиты: здесь

0 голосов
/ 04 января 2019

Вот пример рабочего кода на VB.NET, однако применить его к вашему приложению C # будет тривиально:

Private Sub dgvResults_DataBindingComplete(
        ByVal sender As Object,
        ByVal e As System.Windows.Forms.DataGridViewBindingCompleteEventArgs
        ) Handles dgvResults.DataBindingComplete

    Dim daysOpenThreshold As Integer = 10 'Some trivial value for this example.

    For Each r As DataGridViewRow In dgvResults.Rows

        If CInt(r.Cells(2).Value) >= daysOpenThreshold Then

            Dim style As New DataGridViewCellStyle
            style.BackColor = Color.Red
            style.ForeColor = Color.White

            r.DefaultCellStyle = style

        End If

    Next

End Sub
0 голосов
/ 04 января 2019

попробуйте это:

row.Cells [i] .Style ["background-color"] = "red";

если все равно не работает, вы получаете строку неправильно

...