Ich habe eine DataGridView, bei der der Hintergrund jeder Zeile abhängig vom Datengebundenen Element unterschiedlich ist. Wenn ich jedoch eine Zeile auswähle, kann ich die ursprüngliche Hintergrundfarbe nicht mehr sehen.DataGridView-Zeile: Semi-transparente Auswahl oder Zeilenrand bei Auswahl
Um dies zu lösen, habe ich von zwei Lösungen gedacht:
ich die Auswahl semi-transparent machen, haben unterschiedliche Hintergrundfarben es möglich, zu sehen, ob zwei ausgewählte Zeilen zu machen.
Or; Ich kann die Auswahlfarben vollständig entfernen und einen Rahmen um die ausgewählten Zeilen zeichnen.
Welche Option ist einfacher und wie kann ich das tun?
Es ist eine WinForm-App.
Edit: Ich landete einige Ihren Code, aufs Geratewohl
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);
}
}
Dieser den Eindruck einer halbtransparenten Auswahl Farbe verleiht. Danke für Ihre Hilfe!
Ich gab diesem einen Schuss, und es war in Ordnung. Es erschien dann ein neues Problem - transparente Auswahlfarbe sah wirklich hässlich aus (Text war nach altem Text und Zeug, schwer zu erklären;)) nach einer Sorte, also suche ich nach einer anderen Lösung. –
Ich habe Ihren Code verwendet, um stattdessen eine halbtransparente Auswahlfarbe zu erstellen - siehe Bearbeiten. Danke für Ihre Hilfe! –