Строка DataGridView: полупрозрачный выбор или граница строки при выборе

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

Чтобы решить эту проблему, я подумал о двух решениях:

Я могу сделать выбор полупрозрачным, позволяет увидеть, имеют ли две выбранные строки разные цвета фона.

Или; Я могу полностью удалить цвета выделения и нарисовать рамку вокруг выбранных строк.

Какой вариант проще и как я могу это сделать?

Это приложение WinForm.

Изменить: В итоге я использовал некоторые из ваш код, adrift

    private void dgv_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
    {
        if (dgv.Rows[e.RowIndex].Selected)
        {
            var row = dgv.Rows[e.RowIndex];
            var bgColor = row.DefaultCellStyle.BackColor;
            row.DefaultCellStyle.SelectionBackColor = Color.FromArgb(bgColor.R * 5 / 6, bgColor.G * 5 / 6, bgColor.B * 5 / 6);
        }
    }

Это создает впечатление полупрозрачного цвета выделения. Спасибо за вашу помощь!

11
задан Jim Carragher 17 December 2010 в 12:44
поделиться