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

Framework .NET Discussion :

changer couleur ligne DatagridView


Sujet :

Framework .NET

  1. #1
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2002
    Messages : 264
    Points : 175
    Points
    175
    Par défaut changer couleur ligne DatagridView
    Bonjour,

    Je rempli manuellement (ligne par ligne) 1 datagridview.
    J'y met en 1er des lignes que je voudrais afficher avec 1 Backcolor X.
    j'y met ensuite des lignes ....backcolor Y
    ...et ainsi de suite.

    aujourd'hui j'ajoute chaque ligne avec puis je la recolorie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     MonDGV.Rows(x).DefaultCellStyle.BackColor = Color.xxx
    Mais ça double le temps de traitement (et j'ai beaucoup de lignes) : je me demandais si je pouvais pas faire les 2 en 1 instruction ou définir la couleur en début de groupe ?

    J'ai essayé de modifier DefaultCellStyle ou RowDefaultCellStyle avant chaque groupe de lignes, mais ça recolorie toutes les lignes...existe t'il 1 soluce ?

    merci pour votre aide.

  2. #2
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    1 - pourquoi tu modifies par la couleur au moment où tu créé le DataGridViewRow ?
    Forcément, refaire une boucle ça ralenti.

    2 - Je sais pas si ça peut accélérer, mais je pense :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // pour la première ligne de cette couleur on définit la couleur
    mydgrow.DefaultCellStyle.BackColor = Color.xxx;
    // on sauvegarde temporairement le style
    DataGridViewCellStyle style = mydgrow.DefaultCellStyle;
     
    // pour les autres lignes de la même couleur on applique bêtement ce style
    myotherdgrow.DefaultCellStyle = style;
    (PS : j'ai corrigé les erreurs, dsl pour le premier post)

  3. #3
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2002
    Messages : 264
    Points : 175
    Points
    175
    Par défaut
    je crois que c exactement ce que je cherchais ...mais en syntaxe VB si c possible...

  4. #4
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Tu veux aussi que je vienne chez toi taper le code sur ton clavier ?

  5. #5
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2002
    Messages : 264
    Points : 175
    Points
    175
    Par défaut
    j'ai bien trouvé sur MSDN la confirmation que c ma soluce mais j'arrive pas à le faire marcher.
    j'ai fait :
    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
     
    Dim DGV_Style As New DataGridViewCellStyle
     
    ' 1er groupe de lignes
    DGV_Style.BackColor = color.Blue
    MonDGV.defaultCellStyle=DGV_Style
    do
       ' ... init data pour le DGV
       MonDGV.add(...)
    loop
     
    ' groupe suivant
    DGV_Style.BackColor = color.Red
    MonDGV.defaultCellStyle=DGV_Style
    do
    ' ... init data pour le DGV
       MonDGV.add(...)
    loop
    mais tout mon tableau prends la couleur du dernier groupe...
    si j'execute pas à pas, toutes les lignes sont recoloriées chaque fois que je change defaultcellStyle... et ta remarque n'est pas trés sympa car je suis débutant et ça fait 2 jours que je cherche comme un fou...

  6. #6
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2002
    Messages : 264
    Points : 175
    Points
    175
    Par défaut
    j'ai fini par trouver 1 solution :
    - si on affecte 1 ligne à 1 style, dès qu'on modifie le style, ttes les lignes affectées à ce style sont modifiées...donc la solution pouvait pas marcher.
    - la solution est donc de créer autant de styles qu'on a de variantes.

    Mais j'ai 3 couleurs de fonds et 3 couleurs de texte...donc 9 styles : je me demande si on pourrait pas optimiser :
    - j'ai 3 types de fonds en fonction du groupe : donc je définis 3 styles ne définissant que le BackColor.
    - Pour chaque groupe, j'ai 3 couleurs de ForeColor en fonction des données contenues ds les lignes (les memes critères pour les 3 groupes, ex. : rouge si col.1 négative, Noir si Nul, bleu si >0).

    Ne serait-il pas possible de définir 3 styles pour les fonds, et 3 styles pour les Forecolor, et d'associer les lignes aux 2 styles ?

  7. #7
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2002
    Messages : 264
    Points : 175
    Points
    175
    Par défaut
    ...personne n'a d'idée ???

Discussions similaires

  1. [VB.net] Changer couleur ligne DataGrid
    Par bguihal dans le forum Windows Forms
    Réponses: 7
    Dernier message: 22/07/2016, 06h54
  2. Couleur ligne datagridview en fn donnée
    Par bib34690 dans le forum Général Dotnet
    Réponses: 7
    Dernier message: 12/01/2009, 12h18
  3. TDBLookupComboBox, changer couleur ligne
    Par chill667 dans le forum Composants VCL
    Réponses: 0
    Dernier message: 10/09/2008, 16h00
  4. [2.0]Changer couleur ligne gridview en javascript
    Par tscoops dans le forum ASP.NET
    Réponses: 3
    Dernier message: 08/06/2007, 16h10
  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