Невозможно изменить цвет ячейки в datagridview - PullRequest
0 голосов
/ 31 августа 2011

У меня есть простая форма с сеткой данных, показывающая значения из таблицы MS SQL. Я хочу, чтобы значения более 400 в столбце имени "dc" стали красными (FONT IN RED). Я пробовал это снова и снова, но я не могу сделать это. Вот код:

foreach (DataGridViewRow row in this.dataGridView1.Rows)
{
    int cellval = Convert.ToInt32(row.Cells["dc"].Value);
    if (cellval > 400)
    {
        row.DefaultCellStyle.BackColor = Color.Red;
        MessageBox.Show("O valor da célula é " + cellval, "WLic2010", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    }
}

Самое забавное, что MessageBox действительно доказывает, что он понимает мой запрос, так как выдает только значения более 400.

Помогите пожалуйста !!

Ответы [ 5 ]

3 голосов
/ 31 августа 2011

Вы устанавливаете стиль строки, а не ячейки (DataGridViewCell).

row.Cells["dc"].Style.BackColor = Color.Red;
1 голос
/ 31 августа 2011

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

Используйте свойство "Стиль" ->

DataGridView1.Item(ColumnIndex, RowIndex).Style.BackColor = Color
DataGridView1.Item(ColumnIndex, RowIndex).Style.ForeColor = Color

или

DataGridView1.CurrentCell.Style.BackColor = Color
DataGridView1.CurrentCell.Style.ForeColor = Color

Надеюсь, это ответит на ваш вопрос.

0 голосов
/ 06 мая 2013

Чтобы поменять цвет шрифта, вам нужно изменить свойство ForeColor, попробуйте так:

row.Cells["dc"].Style.ForeColor = Color.Red;
0 голосов
/ 02 сентября 2011

Вы пытались использовать событие CellFormatting, там вы можете проверить значение текущей ячейки, а затем изменить BackColor

0 голосов
/ 31 августа 2011

Это должно быть решено, если вы используете DataGridViewCell.Style.ForeColor вместо DefaultCellStyle.BackColor.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...