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

VB 6 et antérieur Discussion :

Couleur de ligne Mshflexgrid


Sujet :

VB 6 et antérieur

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 135
    Par défaut Couleur de ligne Mshflexgrid
    Bonjour

    J'ai un problème pour colorer le texte d'une ligne entière d'un mshflexgrid.

    J'arrive parfaitement à colorer le texte d'une cellule à la fois mais pas d'une plage de cellule.

    Voila mon code :

    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
     
     
    Do While i < MSHFlexGrid.Rows
            MSHFlexGrid.Row = i
            MSHFlexGrid.Col = 1
            MSHFlexGrid.RowSel = i
            MSHFlexGrid.ColSel = 10
     
            Select Case MSHFlexGrid.TextMatrix(i, 2)
                Case "Expiré"
                    MSHFlexGrid.CellForeColor = vbRed
     
                Case "En attente"
                    MSHFlexGrid.CellForeColor = vbBlue
            End Select
            i = i + 1
     Loop
    Voila avec ce code, cela me colore que la première colonne, il prend en compte les propriétés Row et Col, alors que je voudrais qu'il colore la plage de cellule et prenne en compte les proprietes colsel et rowsel.

    Ou alors connaissez vous un autre moyen de colorer le texte d'une ligne entière ?

    Merci à tous

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Par défaut
    Tu vas être obligé de boucler :

    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
    Dim y As Integer
     
    Do While i < MSHFlexGrid.Rows
            MSHFlexGrid.Row = i
            'MSHFlexGrid.Col = 1
            MSHFlexGrid.RowSel = i
            MSHFlexGrid.ColSel = 10
     
            Select Case MSHFlexGrid.TextMatrix(i, 2)
                Case "Expiré"
                    For y = 1 to 10 
                         MSHFlexGrid.Col = y
                         MSHFlexGrid.CellForeColor = vbRed
                    Next y
                Case "En attente"
                    For y = 1 to 10 
                         MSHFlexGrid.Col = y
                         MSHFlexGrid.CellForeColor = vbBlue
                    Next y
            End Select
            i = i + 1
     Loop

  3. #3
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Tiens :
    Essaye ceci que je viens de "tirer par les cheveux"

    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
    Const ligne = 5  'ici la ligne à mettre en rouge
     
    Private Sub Form_Load()  'juste pour avoir de la matière à tester
     
      MSFlexGrid1.BackColorSel = vbRed 
       DoEvents
      MSFlexGrid1.FixedRows = 0
      MSFlexGrid1.FixedCols = 0
      For i = 1 To 10
        MSFlexGrid1.AddItem i
      Next
    End Sub
     
    Private Sub Command1_Click()
        MSFlexGrid1.RowSel = ligne                ' voilà où on 
        MSFlexGrid1.Row = ligne                    ' commence à
        MSFlexGrid1.RowSel = ligne + 1           ' "tirer par les cheveux"
    End Sub
    Teste à ton tour (je ne l'ai peut-être pas assez fait) et dis-nous...

  4. #4
    mat.M
    Invité(e)
    Par défaut
    Select Case MSHFlexGrid.TextMatrix(i, 2)
    Je conseillerais vivement de prendre Trim() sinon ça ne fonctionnera pas
    Select Case Trim(MSHFlexGrid.TextMatrix(i, 2))

  5. #5
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Dans ce que je t'ai donné plus haut, Phifi, je te laisse bien évidemment changer, si tu le souhaites :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      MSFlexGrid1.BackColorSel = vbRed
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MSFlexGrid1.ForeColorSel = vbRed
      MSFlexGrid1.BackColorSel = vbWhite
    ou par toute autre combinaison de ton choix

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Par défaut
    Dans ce que je t'ai donné plus haut, Phifi, je te laisse bien évidemment changer, si tu le souhaites
    Merci bien, jmf, mais je ne voudrais pas imposer mes choix graphiques à seroa

  7. #7
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Ah; oui !
    Ye m'en a être trompé une fois de plus entre un forumeur et l'autre !

  8. #8
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 135
    Par défaut
    J'ai trouvé la solution.
    Merci à tous !

    En fait, je garde le code de départ, sauf que pour que cellforecolor marche il faut que la propriété FillStyle de mon mshflexgrid soit à 1 (Répété) et non à 0 (Simple)

    Voila

    Encore merci

  9. #9
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Je l'ai mis en gras!

    Une astuce à retenir!

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

Discussions similaires

  1. StringGrid : Couleur des lignes
    Par Caro dans le forum Composants VCL
    Réponses: 7
    Dernier message: 21/02/2006, 08h35
  2. Couleur dans le mshflexgrid
    Par seroa dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 07/10/2005, 11h46
  3. TreeView - couleur par ligne
    Par LoicH dans le forum C++Builder
    Réponses: 4
    Dernier message: 20/06/2005, 23h25
  4. [Reporting] couleur 1 ligne sur 2
    Par meufeu dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 10/05/2005, 10h51
  5. Couleur des lignes dans DBGrid
    Par eddie dans le forum C++Builder
    Réponses: 5
    Dernier message: 21/06/2002, 18h15

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