У меня есть DataGridView, где фон каждой строки отличается в зависимости от элемента привязки данных. Однако, когда я выбираю строку, я больше не вижу ее исходного цвета фона.
Чтобы решить эту проблему, я подумал о двух решениях:
Я могу сделать выделение полупрозрачным, что позволяет увидеть, имеют ли две выбранные строки разные цвета фона.
Или; Я могу полностью удалить выделенные цвета и нарисовать границу вокруг выбранных строк.
Какой вариант проще и как я могу это сделать?
Это приложение WinForm.
Редактировать: в итоге я использовал ваш код, по течению
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);
}
}
Это создает впечатление полупрозрачного выделения цвета. Спасибо за вашу помощь!