[Code Source] R1C Projet – Afficher des couleurs dans une ListView en Visual Studio 2017 (VB.net)




Voici un exemple pour afficher des couleurs dans une ListView sous Visual Studio 2017 (VB.net).

Dans le code source ci-dessous, dans un premier temps on affiche la ListView sans les couleurs, puis par la suite on appel la fonction « Affichage_cartes_couleurs() », qui permet de changer la couleur en fonction de l’état des cartes.

Code Source pour afficher les cartes d’un PABX

Public Sub Afficher_cartes_BDD()
 Try
  Dim id As Integer
  Dim pas As Integer
  With Lv_fichier
   'vider la ListView
   .Clear()
   .Sorting = Nothing
   .ListViewItemSorter = Nothing
   .View = View.Details
   'Créer le nom des colonnes
   .Columns.Add("0").Width = 22
   .Columns.Item(0).Text = "Id"
   .Columns.Add("1").Width = 0
   .Columns.Item(1).Text = "Clef"
   .Columns.Add("2").Width = 0
   .Columns.Item(2).Text = "EAT"
   .Columns.Add("3").Width = 40
   .Columns.Item(3).Text = "RES"
   .Columns.Add("4").Width = 40
   .Columns.Item(4).Text = "NOE"
   .Columns.Add("5").Width = 40
   .Columns.Item(5).Text = "ACT"
   .Columns.Add("6").Width = 40
   .Columns.Item(6).Text = "CPL"
   .Columns.Add("7").Width = 80
   .Columns.Item(7).Text = "TYP"
   .Columns.Add("8").Width = 140
   .Columns.Item(8).Text = "ETA"
   .Columns.Add("9").Width = 140
   .Columns.Item(9).Text = "VER"
   .Columns.Add("10").Width = 90
   .Columns.Item(10).Text = "TOT"
   .Columns.Add("11").Width = 80
   .Columns.Item(11).Text = "UTI"
   .Columns.Add("12").Width = 80
   .Columns.Item(12).Text = "LIB"
   .Columns.Add("13").Width = 140
   .Columns.Item(13).Text = "DATE"
   id = 0
   For i = 1 To nb_CARTES
    .Items.Add(id)
    'On ne sait pas si la carte est dans la BDD
    .Items(id).ImageIndex = 0
    .Items(id).SubItems.Add(Format(Tab_CARTES(i).RES, "00") & Format(Tab_CARTES(i).NOE, "00") & Format(Tab_CARTES(i).ACT, "00") & Format(Tab_CARTES(i).CPL, "00"))
    .Items(id).SubItems.Add(Tab_CARTES(i).id_PABX)
    .Items(id).SubItems.Add(Format(Tab_CARTES(i).RES, "00"))
    .Items(id).SubItems.Add(Format(Tab_CARTES(i).NOE, "00"))
    .Items(id).SubItems.Add(Format(Tab_CARTES(i).ACT, "00"))
    .Items(id).SubItems.Add(Format(Tab_CARTES(i).CPL, "00"))
    .Items(id).SubItems.Add(Tab_CARTES(i).TYP)
    .Items(id).SubItems.Add(Tab_CARTES(i).ETA)
    .Items(id).SubItems.Add(Tab_CARTES(i).VER)
    .Items(id).SubItems.Add(Tab_CARTES(i).EQT_total)
    .Items(id).SubItems.Add(Tab_CARTES(i).EQT_util)
    .Items(id).SubItems.Add(Tab_CARTES(i).EQT_libre)
    .Items(id).SubItems.Add(tab_CARTES_DATE(i))
    id += 1
   Next
  End With
  'Mise à jour des couleurs
  Affichage_cartes_couleurs()
  Catch ex As Exception
   TSSL_status.Text = ex.Message
  End Try
End Sub

Voici le résultat, une couleur est affiché en fonction de l’état des cartes d’un PABX.

Code Source pour afficher les couleurs en fonction de l’état des cartes

Le point le plus important dans le code source c’est de ne pas oublier la ligne suivante, car sinon il ne se passe rien…

.Items(i).UseItemStyleForSubItems = False

Ensuite rien de spécial, on applique les propriétés standard pour chaque cellule de la ListView en fonction du nom affiché pour l’état de la carte d’un PABX.

Private Sub Affichage_cartes_couleurs()
 'Mise à jour des couleurs
 With Lv_fichier
  For i = 0 To Lv_fichier.Items.Count - 1
   .Items(i).UseItemStyleForSubItems = False
   Select Case .Items(i).SubItems(8).Text
    Case "IN SERVICE"
    .Items(i).SubItems(8).ForeColor = Color.White
    .Items(i).SubItems(8).BackColor = Color.Green
    Case "OUT OF SERV"
    .Items(i).SubItems(8).ForeColor = Color.White
    .Items(i).SubItems(8).BackColor = Color.Red
    Case "ONLY OPS FILE"
    .Items(i).SubItems(8).ForeColor = Color.Black
    .Items(i).SubItems(8).BackColor = Color.Yellow
    Case "ONLY MAO FILE"
    .Items(i).SubItems(8).ForeColor = Color.White
    .Items(i).SubItems(8).BackColor = Color.Blue
    Case "REG NOT INIT"
    .Items(i).SubItems(8).ForeColor = Color.White
    .Items(i).SubItems(8).BackColor = Color.Gray
   End Select
  Next
 End With
End Sub

Pour toutes questions ou améliorations du code source n’hésitez pas à laisser un commentaire  😉




Soyez le premier à commenter

Poster un Commentaire

Votre adresse de messagerie ne sera pas publiée.


*