it-swarm-eu.dev

Riga DataGridView: selezione semitrasparente o bordo riga sulla selezione

Ho un DataGridView in cui lo sfondo di ogni riga è diverso a seconda dell'elemento associato ai dati. Tuttavia, quando seleziono una riga, non riesco più a vedere il colore di sfondo originale.

Per risolvere questo, ho pensato a due soluzioni:

Posso rendere le selezioni semi-trasparenti, rendendo possibile vedere se due righe selezionate hanno colori di sfondo diversi.

O; Posso rimuovere completamente i colori di selezione e disegnare un bordo attorno alle righe selezionate.

Quale opzione è più semplice e come posso farlo?

È un'app WinForm.

Modifica: ho finito con il codice nel mio post originale: https://stackoverflow.com/questions/4448945/datagridview-row-semi-transparent-selection-or-row-border-on-selection =

2
Jim Carragher

La mia prima reazione quando ho letto che "lo sfondo di ogni riga è diversa a seconda dell'elemento associato ai dati" è stata Oh no, spero che stia parlando al massimo di uno o due colori ! :-)

Piuttosto che risolvere il tuo problema di selezione, ti suggerisco di renderlo un non-problema e farlo sparire. Vorrei farlo aggiungendo una colonna separata per fornire le stesse informazioni che il colore di sfondo è destinato a rappresentare. Non solo sarebbe più pulito, IMO, ma fornirebbe anche i seguenti vantaggi:

  • Puoi ordinare per "status" (o qualunque cosa lo sfondo colorato sia destinato a rappresentare)

  • Se non hai molti colori diversi, potresti essere in grado di utilizzare le forme, il che è molto utile per daltonico .

  • È possibile combinare un oggetto visivo con informazioni numeriche. La seguente schermata mostra le barre di avanzamento in una colonna, ma è possibile utilizzare un approccio simile per rappresentare ciò che il colore di sfondo sta attualmente cercando di ottenere.

    alt text

C'è un motivo per cui devi usare il colore di sfondo?

2
Hisham