it-swarm-eu.dev

DataGridView-Zeile: Halbtransparente Auswahl oder Zeilenrand bei Auswahl

Ich habe eine DataGridView, in der der Hintergrund jeder Zeile je nach datengebundenem Element unterschiedlich ist. Wenn ich eine Zeile auswähle, kann ich die ursprüngliche Hintergrundfarbe nicht mehr sehen.

Um dies zu lösen, habe ich mir zwei Lösungen ausgedacht:

Ich kann die Auswahl halbtransparent machen, um zu sehen, ob zwei ausgewählte Zeilen unterschiedliche Hintergrundfarben haben.

Oder; 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.

Bearbeiten: Ich habe den Code in meinem ursprünglichen Beitrag erhalten: https://stackoverflow.com/questions/4448945/datagridview-row-semi-transparent-selection-or-row-border-on-selection =

2
Jim Carragher

Meine erste Reaktion, als ich las, dass "der Hintergrund jeder Zeile je nach datengebundenem Element unterschiedlich ist", war Oh nein, ich hoffe, dass er höchstens von einer oder zwei Farben spricht ! :-)

Anstatt Ihr Auswahlproblem zu lösen, schlage ich vor, dass Sie es zu einem Nicht-Problem machen und es verschwinden lassen. Ich würde das tun, indem ich eine separate Spalte hinzufüge, um die gleichen Informationen bereitzustellen, die die Hintergrundfarbe darstellen soll. Es wäre nicht nur sauberer, IMO, sondern würde auch die folgenden Vorteile bieten:

  • Sie können nach "Status" sortieren (oder was auch immer der farbige Hintergrund darstellen soll)

  • Wenn Sie nicht viele verschiedene Farben haben, können Sie möglicherweise Formen verwenden, was für farbenblind sehr hilfreich ist.

  • Sie können eine visuelle mit numerischen Informationen kombinieren. Der folgende Bildschirmschnappschuss zeigt Fortschrittsbalken in einer Spalte. Sie können jedoch einen ähnlichen Ansatz verwenden, um darzustellen, was Ihre Hintergrundfarbe derzeit erreichen möchte.

    alt text

Gibt es einen Grund, warum Sie Hintergrundfarbe verwenden müssen?

2
Hisham