DataGridView-Zeile: Semi-transparent Auswahl-oder Zeilen-Grenze bei der Auswahl

Ich habe ein DataGridView, in denen der hintergrund der einzelnen Zeilen ist unterschiedlich, je nachdem auf die Daten gebundenes Element. Obwohl, wenn ich wählen Sie eine Zeile aus, ich kann nicht mehr sehen, seine ursprüngliche Hintergrundfarbe.

Um dieses Problem zu lösen, ich dachte daran, zwei Lösungen:

Kann ich bei der Auswahl semi-transparent, wodurch es möglich ist, um zu sehen, wenn zwei Zeilen verschiedene Hintergrundfarben haben.

Oder; ich kann entfernen Sie die Auswahl der Farben völlig, und ziehen Sie einen Rahmen um die ausgewählten Zeilen.

Welche option ist einfacher, und wie mache ich das?

Es ist eine WinForm-app.

Edit: ich landete mit einige Ihrer code, 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);
        }
    }

Dadurch entsteht der Eindruck eines semi-transparente Auswahl-Farbe. Vielen Dank für Ihre Hilfe!

Schreibe einen Kommentar