Domanda

Ho un DataGridView con quattro colonne. I primi tre sono tornati indietro come un array: rosso, verde e blu. Tutti i valori sono compresi tra 0 e 255. Ho programmazione aggiunto una colonna chiamata "Colore". Mi piacerebbe l'backcolor di questa colonna per riflettere il contenuto RGB. Posso vedere i dati RGB in modo corretto, e utilizzando il debugger, il backcolor viene impostata correttamente contro la proprietà. Posso anche impostare BackColor della colonna e visualizza correttamente. Ho provato a installare backcolor della cellula "Red" e questo non funziona neanche.

I risultati del codice qui sotto in una colonna completamente bianco.

Ecco il mio codice:

        DataGridViewColumn DGC = new DataGridViewColumn();
        DGC.Name = "Colour";
        DGC.CellTemplate = new DataGridViewTextBoxCell();
        dgPallette.Columns.Add(DGC);
        foreach (DataGridViewRow DGR in dgPallette.Rows)
        {
            Color cellColor = Color.FromArgb(
                int.Parse(DGR.Cells["Red"].Value.ToString()), 
                int.Parse(DGR.Cells["Green"].Value.ToString()), 
                int.Parse(DGR.Cells["Blue"].Value.ToString()));
            DGR.Cells["Colour"].Style.BackColor = cellColor;
        }

Tutte le idee?

Grazie in anticipo Jim

È stato utile?

Soluzione

A volte trovo che i colori di regolazione nel DataGridView non funziona come previsto e finiscono per ricorrere all'utilizzo di DataGridView.CellFormatting evento -. questo fa sempre il trucco, ed è abbastanza semplice per ottenere la testa intorno

Spesso la formattazione problemi sorgono quando la griglia è legato a un'origine dati - soprattutto quando si consente l'ordinamento. Questo evento Supera questo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top