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 :

[VB.net] Changer couleur ligne DataGrid [Trucs & Astuces]


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2002
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2002
    Messages : 72
    Points : 63
    Points
    63
    Par défaut [VB.net] Changer couleur ligne DataGrid
    Comment fait on pour changer de couleur une ligne de data grid en vb.net ? j'ai essayer d'effectuer les solutions sur le forum, mais je ne trouve pas ça clair, est on vraiment obliger de créé une classe qui herite de datagridtextBoxColumn ? je trouve cela tres compliqué pour pas grand chose.
    merci d'avance.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 12
    Points : 14
    Points
    14
    Par défaut
    Il y a la possibilité d'utiliser le parametre "AlternatingBackColor" du datagrid, et il faut la modifier aussi dans la collection du datagrid, mais ça alterne automatiquement et tu peux pas gérer (je crois) les lignes qui ont le même identifiant (par exemple : plusieurs numéros de téléphone pour DURAND). ça ne fait qu'alterner une ligne sur deux avec la couleur donnée. Si quelqu'un a une solution pour l'exemple DURAND, j'achète !

  3. #3
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    est on vraiment obliger de créé une classe qui herite de datagridtextBoxColumn ?
    oui on l'est ...
    Mais c'est pas grand chose à faire non plus ...
    Juste le paint à définir

  4. #4
    Responsable technique

    Avatar de Anomaly
    Homme Profil pro
    Directeur
    Inscrit en
    Juin 2003
    Messages
    10 345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Directeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 345
    Points : 130 259
    Points
    130 259
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par abelman
    est on vraiment obliger de créé une classe qui herite de datagridtextBoxColumn ?
    oui on l'est ...
    on n'est pas obligé Et encore heureux

    Il suffit d'associer l'événement ItemDataBound au DataGrid et de faire un code similaire au suivant (c'est du C# et ça colore tout en rouge) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    private void Liste_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
      if (e.Item.ItemIndex != -1)
      {
        for (int i = 0; i < e.Item.Cells.Count; i++)
          e.Item.Cells[i].BackColor = System.Drawing.Color.Red;
      }
    }
    Le numéro de la ligne est dans e.item.ItemIndex. i contient le numéro de la cellule car tu peux colorer chaque cellule indépendamment des autres ; c'est pour ça que je fais une boucle pour colorer ma ligne.

    En espérant que cette solution te convienne

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2002
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2002
    Messages : 72
    Points : 63
    Points
    63
    Par défaut
    Mais on ne peut pas integrer directement ce datagridtextBoxColumn a l'ide de vb.net, dans les datagridcolumstyle. a la place de datagridtextBoxColumn et datagridBoolColumn ?
    sinon pour le paint tu fait juste un overide, mais comment tu fait pour l'implementer si par exemple tu veux qu'il t'affiche une ligne en couleur si un des champ est <0.
    merci.

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2002
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2002
    Messages : 72
    Points : 63
    Points
    63
    Par défaut
    Anomaly quand tu parle de System.Web.UI.WebControls.DataGridItemEventArgs c'est de l'asp net non ? je suis en vb.net et ça ne marche pas.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Tu dois d'abord remplir ton datagrid, ensuite tu pointe sur la ligne que tu veux (vérifie qu'elle existe) et tu colores chaque cellule de la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub ColorLigne(iLigne as integer, Couleur as Color)
    Dim i as integer
    if DataGrid1.Items.count>=iLigne then
    For i = 0 To DataGrid1.Items(iLigne).Cells.Count - 1
      DataGrid1.Items(iIndex).Cells(i).BackColor = Couleur
    Next
    end if
    end sub
    [Balise [code] rajoutée par Abelman]
    [Pensez-y vous-même à l'avenir. Merci. ]

  8. #8
    Candidat au Club
    Inscrit en
    Janvier 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Janvier 2011
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    With Me.dataGridView1
    .RowsDefaultCellStyle.BackColor = Color.Bisque
    .AlternatingRowsDefaultCellStyle.BackColor = Color.Beige
    End With

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

Discussions similaires

  1. TDBLookupComboBox, changer couleur ligne
    Par chill667 dans le forum Composants VCL
    Réponses: 0
    Dernier message: 10/09/2008, 16h00
  2. [2.0]Changer couleur ligne gridview en javascript
    Par tscoops dans le forum ASP.NET
    Réponses: 3
    Dernier message: 08/06/2007, 16h10
  3. [VB.net] selectionner une ligne DataGrid
    Par MichMich29 dans le forum ASP.NET
    Réponses: 11
    Dernier message: 31/05/2007, 20h36
  4. changer couleur ligne DatagridView
    Par bib34690 dans le forum Framework .NET
    Réponses: 6
    Dernier message: 04/05/2007, 12h03
  5. changer couleur ligne tableau
    Par philippe123 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/02/2007, 15h19

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