Как сохранить передний цвет ячейки DataGridView, когда она выбрана - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть DataGridView, который отображает некоторые значения красным, а некоторые синим, в зависимости от определенных условий. Однако, когда строка выбрана, изменяется задний цвет этой строки (это нормально, мне это действительно нужно), а также передний цвет всех ячеек в этой строке, который разрушает все.

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

Ответы [ 2 ]

0 голосов
/ 01 мая 2020

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

выбранной строки.

Вы можете попробовать следующий код.

 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;
                }
            }

        }

Результат тестирования:

enter image description here

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

0 голосов
/ 30 апреля 2020

Я нашел то, что вам нужно в этом другом ответе:

Как изменить цвет фона выбранной строки таблицы обзора?

dataGridView1.DefaultCellStyle.SelectionBackColor = Color.Blue;
dataGridView1.DefaultCellStyle.SelectionForeColor = Color.Red;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...