В зависимости от вашей проблемы, вы хотели бы сохранить основной цвет ячейки при изменении заднего цвета
выбранной строки.
Вы можете попробовать следующий код.
private void Form1_Load(object sender, EventArgs e)
{
DataTable table = new DataTable();
table.Columns.Add("Name");
table.Columns.Add("Age");
table.Columns.Add("Id");
table.Rows.Add("test1", 22, 1001);
table.Rows.Add("test2", 23, 1002);
table.Rows.Add("test3", 24, 1003);
dataGridView1.DataSource = table;
dataGridView1.Rows[1].Cells[1].Style.ForeColor = Color.Yellow;
dataGridView1.Rows[1].Cells[2].Style.ForeColor = Color.Yellow;
}
private void button1_Click(object sender, EventArgs e)
{
dataGridView1.CurrentRow.DefaultCellStyle.SelectionBackColor = Color.Green;
var result = dataGridView1.CurrentRow.Cells;
foreach (DataGridViewCell item in result)
{
if (item.Style.ForeColor ==Color.Empty)
{
item.Style.ForeColor = Color.Blue;
}
}
}
Результат тестирования:

Вы можете видеть, что во втором ряду передний цвет желтых ячеек не изменился, а его задний цвет имеет был изменен