none
Changement de couleur d'une cellule dans une tabledatagridview selon sa valeur RRS feed

  • Discussion générale

  • Bonjour à tous, Je recherche un moyen de changer la couleur d'une cellule dans un datagridview avec une table d'une database. Voici mon code:

    Dans le private sub de la tabledatagridview_CellFormatting

    If Table1datagridview. Columns(e. ColumnsIndex). Name._ Equals("Age") Then

    If CDdl(e. Value) < 10 Then

    e. Cell Style. Backcolor = color. Red

    Else 

    e. Cell Style. Backcolor = color. White

    End if

    End if

    End sub

    Avez vous une idée car je n'y arrive pas. Je dois louper quelque chose. 

    Merci. 

    Cordialement. 

    jeudi 23 août 2018 08:35

Toutes les réponses

  • Bonjour Eden83,

    Je n’arrive pas à identifier des problèmes après l’adaptation du code (l’enlèvement des espace superflus, la conversion se fait à l’aide de la fonction CDbl etc.) et je l’ai testé :

        Private Sub Table1datagridview_CellFormatting(sender As Object, e As DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
            If Table1datagridview.Columns(e.ColumnIndex).Name.Equals("Age") Then
                If CDbl(e.Value) < 10.0 Then
                    e.CellStyle.BackColor = Color.Red
                Else
                    e.CellStyle.BackColor = Color.White
                End If
            End If
        End Sub

    Quelle difficulté rencontrez-vous? Est-ce que toutes les cellules sont rouges ou blanches? Quelle version de Visual Studio utilisez-vous? Avez-vous en effet déclaré la colonne Age du type Double ou bien Int32?

    Cordialement,
    Dimitar

    vendredi 24 août 2018 08:27
    Modérateur
  • Bonjour et merci pour ta réponse,

    Effectivement toutes mes cellules restent blanche. Elle ne change pas de couleur. 

    Je suis sur visual basic express 2010, j ai déclaré dans la table "age" en int et c'est sans doute la que je fais une erreur !

    Cordialement. 

    vendredi 24 août 2018 11:09
  • Je ne trouve vraiment pas d'où vient le problème !!!

    Je n'arrive pas pas à faire fonctionner ce code !

    Personne a une idée ? 

    mardi 28 août 2018 14:50
  • Bonjour Eden83,

    Si la colonne "Age" est déclarée en int, il suffit d’appeler CInt ou Convert.ToInt32 au lieu de CDbl :

        Private Sub Table1datagridview_CellFormatting(sender As Object, e As DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
            If Table1datagridview.Columns(e.ColumnIndex).Name.Equals("Age") Then
                If CInt(e.Value) < 10 Then    'ou : Convert.ToInt32(e.Value) < 10
                    e.CellStyle.BackColor = Color.Red
                Else
                    e.CellStyle.BackColor = Color.White
                End If
            End If
        End Sub

    Cordialement,
    Dimitar

    jeudi 30 août 2018 07:56
    Modérateur
  • Bonjour, merci pour ta réponse, cependant cela ne fonctionne toujours pas. Si je crée une table en code c bon, des que j'utilise la table de la data pour charger le datagridview cela ne fonctionne plus.Que faire ?

    Merci. 

    samedi 1 septembre 2018 07:00