Partage
  • Partager sur Facebook
  • Partager sur Twitter

Alterner couleur ListView

VB.net

Sujet résolu
9 mai 2011 à 17:32:12

Bonjour,

Voila j'aimerais pouvoir alterner la couleur de mon ListView tel que les lignes paires soient grises et les autres blanches...
Mais je ne vois pas comment trouver le nombre de ligne présente , une aide ? j'ai commencé quelque chose comme ça :
Sub ColorRow()
        Dim index As Integer = ListView1.SelectedItems.Count

        If index Mod 2 = 0 Then
            Me.ListView1.BackColor = Color.White

        ElseIf index Mod 2 = 1 Then
            Me.ListView1.BackColor = Color.LightGray
        End If

    End Sub


Une aide ?
Merci à tous :)
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
9 mai 2011 à 17:37:40

Agis sur les ListViewItems dans ListView1.Items, en définissant leur BackColor.
  • Partager sur Facebook
  • Partager sur Twitter
9 mai 2011 à 17:59:01

J'ai voulu faire ainsi :
For Each lvi In Me.ListView1.Items
            If lvi Mod 2 = 0 Then
                Me.ListView1.BackColor = Color.White
            ElseIf lvi Mod 2 = 1 Then
                Me.ListView1.BackColor = Color.LightGray
            End If
        Next


J'aimerais que pour chaque ligne il s'arrête et face le nécessaire mais je n'y arrive pas
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
9 mai 2011 à 18:29:22

Il te faut agir sur lvi.BackColor.

PS : Ton ElseIf est inutile puisque si un nombre entier n'est pas pair, il est forcément impair ;)
  • Partager sur Facebook
  • Partager sur Twitter
9 mai 2011 à 19:20:30

Ca ça devrait t'aider ! ;)

Dim NbItem As Integer = 0   
'pour chaque client 
     For Each c As Customer In cManager.Customer
        'Ici tu construit ta ligne puis tu l'ajoute
          list.Items.Add(MyLine)
        'Mettre une ligne en vert grâce au modulo ajoute un else si 
        'tu veux colorer aussi les impaire
           If (NbItem Mod 2) = 0 Then
               list.Items(NbItem).BackColor = Color.DarkSeaGreen
           End If
         NbItem = NbItem + 1
      Next
  • Partager sur Facebook
  • Partager sur Twitter
10 mai 2011 à 9:19:49


For Each lvi In Me.ListView1.Items

            If index Mod 2 = 0 Then
                lvi.BackColor = Color.LightGray
            Else
                lvi.BackColor = Color.White
            End If
Next
?

Ok :) Merci à tous
  • Partager sur Facebook
  • Partager sur Twitter
10 août 2024 à 7:33:30

Bonjour, 

Est-ce que ça fonctionne ? 

Meilleures salutations 

  • Partager sur Facebook
  • Partager sur Twitter
10 août 2024 à 9:41:02

@PhilippeGonin Bonjour, L'auteur du sujet l'a noté comme résolu, c'est qu'il/elle à trouvé la solution indiquée comme utile.

Ce sujet date de 2011, merci de ne pas déterrer d'ancien sujet résolu. Si vous avez une question pour une nouvelle problématique créer un nouveau sujet.

Je ferme celui-ci  pour déterrage.

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Liens conseillés

  • Partager sur Facebook
  • Partager sur Twitter