Tôi có một DataGridView nơi nền của mỗi hàng khác nhau tùy thuộc vào mục bị ràng buộc dữ liệu. Mặc dù, khi tôi chọn một hàng, tôi không thể nhìn thấy màu nền ban đầu của nó nữa.Dòng DataGridView: Lựa chọn bán trong suốt hoặc đường viền hàng trên lựa chọn
Để giải quyết điều này, tôi đã nghĩ đến hai giải pháp:
tôi có thể làm cho các lựa chọn bán trong suốt, làm cho nó có thể nhìn thấy nếu hai hàng được lựa chọn có màu nền khác nhau.
Hoặc; Tôi có thể xóa hoàn toàn các màu lựa chọn và vẽ đường viền quanh các hàng đã chọn.
Tùy chọn nào dễ hơn và làm cách nào để tôi thực hiện việc này?
Đó là ứng dụng WinForm.
Edit: tôi đã kết thúc sử dụng một số mã của bạn, trôi dạt
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);
}
}
này cho ấn tượng của một màu sắc lựa chọn bán trong suốt. Cảm ơn bạn đã giúp đỡ!
Tôi đã chụp cảnh này và điều đó vẫn ổn. Sau đó nó xuất hiện một vấn đề mới - màu lựa chọn trong suốt trông thực sự xấu xí (văn bản được dựa trên văn bản cũ và các công cụ, khó giải thích;)) sau khi sắp xếp, vì vậy tôi sẽ tìm một giải pháp khác. –
Tôi đã sử dụng mã của bạn để tạo màu lựa chọn nửa công khai thay thế - xem chỉnh sửa. Cảm ơn bạn đã giúp đỡ! –