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!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, zeichnen Sie einen Rahmen um die ausgewählten Zeilen, die Sie verwenden können, die DataGridView.RowPostPaintEvent, und auf "löschen" die Auswahl der Farben, die Sie verwenden können, die DataGridViewCellStyle.SelectionBackColor und DataGridViewCellStyle.SelectionForeColor Eigenschaften.
Zum Beispiel, wenn ich die Zeile Stil wie diese
Kann ich fügen Sie diesen code in die
RowPostPaintEvent
und eine ausgewählte Zeile wird angezeigt, wie diese: