[winforms] DataGridView 행 : 선택 항목의 반투명 선택 영역 또는 행 테두리



Answers

Question

각 행의 배경이 데이터 바인딩 된 항목에 따라 다른 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);
        }
    }

반투명 한 선택 색상의 느낌을줍니다. 당신의 도움을 주셔서 감사합니다!