Как осуществить выделение цветом отрицательных элементов в двумерном массиве DataGridView? (C#)

Разрабатывается программа Windows Form. Есть масив - int [,] a, размерность которого задается пользователем вручную в выделенном диапазоне DataGridView1.RowCount = n; DataGridView1.ColumnCount = m (по умолчанию, 5x5). Ячейки заполняются рандомными значениями a[i, j] = ran.Next(-20, 50).

Определенная часть массива, после генерации имеет отрицательные значения. Как можно выделить цветом только такие ячейка (со знаком "-")?

Пытался через что-то подобное сделать, только под свои условия, но в большинстве случаев получаю ошибку Оператор "<" невозможно применить к операнду типа "object" и "int".

foreach (DataGridViewRow row in dataGridView1.Rows)
{
    if (row.Cells[someColumnIndex].Value == 3)
        row.Cells[someColumnIndex].Style.BackColor = System.Drawing.Color.Blue;
    else if (row.Cells[someColumnIndex].Value == 2)
        row.Cells[someColumnIndex].Style.BackColor = System.Drawing.Color.Red;
}

Буду благодарен, если поможете разобраться :)


Ответы (1 шт):

Автор решения: aepot

Вы забыли про приведение типов.

foreach (DataGridViewRow row in dataGridView1.Rows)
{
    var cell = row.Cells[someColumnIndex];
    int number = (int)cell.Value;
    if (number == 3)
        cell.Style.BackColor = Color.Blue;
    else if (number == 2)
        cell.Style.BackColor = Color.Red;
}

Упаковка-преобразование и распаковка-преобразование

Кстати, есть способ написать этот код немного проще, но нужен C# 8.0. К сожалению, у вас не указана версия дотнета или языка.

→ Ссылка