IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

modifier la couleur d une ligne DGW


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 74
    Points : 51
    Points
    51
    Par défaut modifier la couleur d une ligne DGW
    bonjour
    voila je me trouve coincée avec un petit problème je voudrais quand on affiche un tableau en DGW et quand il a une ligne avec un type de véhicule (pour moi sa serai PL) cette ligne devienne jaune et que les autres ne bouge pas de couleur

    je met une bout du programme que j ai fait juste pour cette affaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     private void affiche()
            {
                DebutDat = DateTime.Parse(P1.Text); FinDat = DateTime.Parse(P2.Text);
     
                Chaine(); co.Open(); cmd.Connection = co; cmd.CommandType = CommandType.Text;
                cmd.CommandText = "SELECT BLint, DateCom, CSociete, LSociete, LVille, PaysLivree, TypeVeh FROM Course WHERE (DateCom >= '" + DebutDat + "') AND (DateCom <= '" + FinDat + "') ORDER BY BLint";
                da.SelectCommand = cmd; da.Fill(ds, "Afficher");
                try
                {
                    da.SelectCommand = cmd; da.Fill(ds, "Liste");
                    co.Close();
                    DGW1.DataSource = ds.Tables["Liste"];
     
     
                    es = DGW1.RowCount;
                    for (int u = 0; u < es; u = u + 1)
                    {
                        string TypVeh = "" + ds.Tables["Liste"].Rows[u]["TypeVeh"];
     
                        if (TypVeh == "PL")
                        {
                            DGW1.RowsDefaultCellStyle.BackColor = Color.Yellow;
                        }
                        else
                        {
                            DGW1.RowsDefaultCellStyle.BackColor = Color.White;
                        }
                    }
                }
                catch
                {
                }
            }
    sa fonctionne mais je me retrouve avec tous les ligne en jaunes ou blancs et comme je débute dans la chose je vous remercie d avance de l aide qu on peut me donnée
    merci

  2. #2
    Inactif  

    Homme Profil pro
    développeur Vala
    Inscrit en
    Février 2011
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : développeur Vala
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 478
    Points : 3 700
    Points
    3 700
    Par défaut
    si je comprends bien, tu veux que seule la ligne sélectionnée soit colorée.
    ce que tu devrait faire, c'est colorer en jaune la ligne sélectionnée, puis regriser une à une les autres.
    (marquer un post résolu si vous êtes satisfait de la réponse )
    ma page launchpad https://launchpad.net/~inizan-yannick
    ma page github : https://github.com/inizan-yannick

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 74
    Points : 51
    Points
    51
    Par défaut
    j ai une liste de véhicule (je suis dans le transport) et je voudrais que tous les véhicules type PL on une autre couleur en arrière plans que les autres type de véhicule

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    665
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 665
    Points : 1 161
    Points
    1 161
    Par défaut
    Bonjour
    il y a entre autre l'event CellFormatting du dgv pour cela.
    Un exemple ci dessous : Dans la colonne Fonction, les responsables des achats sont visuellement reconnaissables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
        Private Sub DataGridView1_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) _
    Handles DataGridView1.CellFormatting
     
            Dim row As DataRowView = CType(DataGridView1.Rows(e.RowIndex).DataBoundItem, DataRowView)
            If Not row Is Nothing Then
                If Not row("Fonction") Is DBNull.Value Then
     
                    Dim fonct As String = CStr(row("Fonction"))
                    Dim cBackColor As Color = Color.White
                    Dim cForColor As Color = Color.Black
                    Dim font As New Font(DataGridView1.DefaultCellStyle.Font.FontFamily, 10)
     
                    If fonct = "Responsable des achats" Then
                        cBackColor = Color.Orange
                        cForColor = Color.Blue
                        font = New Font(DataGridView1.DefaultCellStyle.Font.FontFamily, 10, FontStyle.Bold)
                    End If
     
                    Me.DataGridView1.Rows(e.RowIndex).DefaultCellStyle.BackColor = cBackColor
                    Me.DataGridView1.Rows(e.RowIndex).DefaultCellStyle.ForeColor = cForColor
                    Me.DataGridView1.Rows(e.RowIndex).DefaultCellStyle.Font = font
                End If
            End If
        End Sub
    c'est du VB.net, mais facilement adaptable en c#, j'espère.

  5. #5
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut modifiy cell color
    bonjour furax51

    tu y est presque .Comme ceci simplement en accedant à l'index de la cell:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
      for (int u = 0; u < es; u = u + 1)
                    {
                        string TypVeh = "" + ds.Tables["Liste"].Rows[u]["TypeVeh"];
     
                        if (TypVeh == "PL")
                        {
                            DGW1.RowsDefaultCellStyle.BackColor = Color.Yellow;
                 DGW1.Rows[u].Cells]["TypeVeh"].Style.BackColor=Color.Aquamarine;
                 DGW1.Rows[u].Cells["TypeVeh"].Style.ForeColor=Color.Chartreuse;
                       ' la suite ........le font,l'alignement,le fomat etc...
                        }
                        else
                        {
                            DGW1.RowsDefaultCellStyle.BackColor = Color.White;
                        }
                    }
    bon code.......................

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 74
    Points : 51
    Points
    51
    Par défaut
    je vous remercie beaucoup de votre aide sa ma bien aidée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/12/2009, 20h43
  2. Réponses: 2
    Dernier message: 28/08/2007, 16h03
  3. [D7] Modifier la couleur d'une ligne d'un DBdataGrid
    Par celine33 dans le forum Bases de données
    Réponses: 13
    Dernier message: 28/09/2006, 16h14
  4. Réponses: 5
    Dernier message: 06/06/2006, 10h27
  5. [C#] [DataGrid] Modifier la couleur d'une ligne
    Par nalaya dans le forum Windows Forms
    Réponses: 4
    Dernier message: 27/08/2004, 12h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo