У меня есть 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);
}
}
Это создает впечатление полупрозрачного цвета выбора. Спасибо за вашу помощь!