Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    impostare colore sfondo di ogni cella di una datagridview

    Ciao!
    Vorrei impostare il colore di sfondo di ogni cella di una datagridview in base al valore della variabile appartenente alla matrice con gli stessi indici.
    Il mio tentativo:
    codice:
    Public Sub riempiTabella()
            With (DataGridView1)
                'Imposto Numero righe e colonne.
                .RowCount = YMappa
                .ColumnCount = XMappa
                'scorro gli indici
                For j = 0 To XMappa - 1
                    For i = 0 To YMappa - 1
    
                        ' imposto output cella
                        If caselle(i, j, 0) = casellemax Then
                            .DefaultCellStyle.BackColor = Color.GreenYellow
                            .AlternatingRowsDefaultCellStyle.BackColor = Color.GreenYellow
                            .DefaultCellStyle.SelectionBackColor = Color.GreenYellow
    
    
                        ElseIf caselle(i, j, 0) = 0 Then
                            .DefaultCellStyle.BackColor = Color.Black
                            .AlternatingRowsDefaultCellStyle.BackColor = Color.Black
                            .DefaultCellStyle.SelectionBackColor = Color.Black
    
    
                        Else
                            .DefaultCellStyle.BackColor = Color.DarkGreen
                            .AlternatingRowsDefaultCellStyle.BackColor = Color.DarkGreen
                            .DefaultCellStyle.SelectionBackColor = Color.DarkGreen
                        End If
    
    
                    Next i
                Next j         End With

    Fuori dal ciclo For..Next le tre righe fanno quello che mi aspetto. Non capisco perchè non funzioni, tra l'altro quando lo avvio si vede che fatica... se al posto delle tre righe per il backgrond delle celle metto:
    codice:
    .Item(i, j).Value = caselle(i, j, 0)

    Visualizza correttamente all'interno di ogni casella il valore che mi aspetto e non rallenta visibilmente come col codice background.

    Grazie in anticipo!

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2015
    Messaggi
    24
    Ciao,

    il codice che hai scritto modifica il DEFAULT del colore delle celle del datagrid non il colore della cella corrente.

    Per ottenere quello che vuoi ti basta sostituire

    .DefaultCellStyle.BackColor = Color.GreenYellow
    .AlternatingRowsDefaultCellStyle.BackColor = Color.GreenYellow
    .DefaultCellStyle.SelectionBackColor = Color.GreenYellow
    con

    .Item(i, j).Style.BackColor = Color.GreenYellow

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2020 vBulletin Solutions, Inc. All rights reserved.