Member 14836421 Ответов: 1

Цвет не возвращение-это черный, когда я снимите флажок в элементе управления datagridview в C#. Пожалуйста, помогите мне!


if (chkRed2.Checked == false)
{
    this.dgvHF1111.DefaultCellStyle.ForeColor = Color.Black;                
}

else if (chkRed2.Checked == true)
{               
    for (int i = 0; i < dgvHF1111.RowCount - 1; i++) //compare data
    {
        var Row = dgvHF1111.Rows[i];
        string abc = Row.Cells[12].Value.ToString() + Row.Cells[13].Value.ToString().ToUpper();
        

        for (int j = i + 1; j < dgvHF1111.RowCount; j++)
        {
            var Row2 = dgvHF1111.Rows[j];
            string def = Row2.Cells[12].Value.ToString() + Row2.Cells[13].Value.ToString().ToUpper();
            
            if (abc == def)
            {
                
                dgvHF1111.Rows[j].DefaultCellStyle.ForeColor = Color.Red;
            }
        }
    }
}


Что я уже пробовал:

Помогите, пожалуйста, цвет текста-черный нормально.

Richard MacCutchan

Скорее всего, вам нужно обновить вид после изменения цвета.

1 Ответов

Рейтинг:
0

OriginalGriff

Вместо того чтобы делать это подобным образом, обработайте событие CellPainting для DGD и просто аннулируйте элемент управления, когда вы хотите изменить цвет: Раскрашивание ячеек DataGridView в соответствии с их содержимым в WinForms[^]

Таким образом, обрабатываются только те ячейки, которые в данный момент видны, и вам вообще не нужен цикл.