Surlignage d'item spécifique. [Résolu]

Messages postés
10
Date d'inscription
mercredi 5 décembre 2012
Dernière intervention
25 juillet 2013
- - Dernière réponse : cs_ShayW
Messages postés
3244
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
13 décembre 2018
- 17 juil. 2013 à 21:01
Bonjour tout le monde

Alors voilà, je ne pense pas qu'avec ce titre très vague vous ayez compris


Bref, j'ai une listbox contenant plein de chemin de fichier d'un FTP (celui de l'utilisateur dans ce cas).

J'aimerai surligner toute la ligne d'un item séparément des autres, voici les couleur qui seront à utiliser :

- Jaune : En attente
- Vert : Download OK
- Rouge : Echec

Est-ce qu'il y aurait un moyen ?
Si on ne peux pas le faire avec une listbox normale, j'accepterai avec plaisir des liens qui permettent de télécharger des listbox comme ça.
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
23610
Date d'inscription
mercredi 22 octobre 2003
Statut
Contributeur
Dernière intervention
14 décembre 2018
3
Merci
Bonjour,

Peut être avec DrawItem.

Regardez ICI

Cordialement,
Jordane
_____________________________________________________
Règles du forum à lire avant de poster une question : ICI

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de jordane45
Messages postés
10
Date d'inscription
mercredi 5 décembre 2012
Dernière intervention
25 juillet 2013
0
Merci
Merci pour ce code, mais malheureusement je n'arrive pas à l'utiliser...

Quand j'appelle le Sub, je ne sais pas quelle valeur il faut pour "ByVal e As System.Windows.Forms.DrawItemEventArgs"
Commenter la réponse de cs_tictac08
Messages postés
10
Date d'inscription
mercredi 5 décembre 2012
Dernière intervention
25 juillet 2013
0
Merci
Ah non c'est bon je viens de comprendre comme ça marche, il faut forcer la listbox a se redessiner.

Merci beaucoup jordane45
Commenter la réponse de cs_tictac08
Messages postés
23610
Date d'inscription
mercredi 22 octobre 2003
Statut
Contributeur
Dernière intervention
14 décembre 2018
0
Merci
Cordialement,
Jordane
_____________________________________________________
Règles du forum à lire avant de poster une question : ICI
Commenter la réponse de jordane45
Messages postés
3244
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
13 décembre 2018
0
Merci
Salut
pas si simple que ça
ici un petit ex avec un listbox nommé listbox1
Public Class Form1
    Private Structure pathinfo
        Public path As String
        Public status As Integer
    End Structure
    Private listpath As New List(Of pathinfo)
    Private Sub GetPath()
        Dim pathinfo As pathinfo
        pathinfo.path = "AAAAAAA0"
        pathinfo.status = 0
        listpath.Add(pathinfo)
        pathinfo.path = "BBBBBBBB0"
        pathinfo.status = 0
        listpath.Add(pathinfo)
        pathinfo.path = "CCCCCCCC0"
        pathinfo.status = 0
        listpath.Add(pathinfo)
        pathinfo.path = "DDDDDDDD0"
        pathinfo.status = 0
        listpath.Add(pathinfo)
        pathinfo.path = "AAAAAAA1"
        pathinfo.status = 1
        listpath.Add(pathinfo)
        pathinfo.path = "BBBBBBBB1"
        pathinfo.status = 1
        listpath.Add(pathinfo)
        pathinfo.path = "CCCCCCCC1"
        pathinfo.status = 1
        listpath.Add(pathinfo)
        pathinfo.path = "DDDDDDDD1"
        pathinfo.status = 1
        listpath.Add(pathinfo)
        pathinfo.path = "AAAAAAA2"
        pathinfo.status = 2
        listpath.Add(pathinfo)
        pathinfo.path = "BBBBBBBB2"
        pathinfo.status = 2
        listpath.Add(pathinfo)
        pathinfo.path = "CCCCCCCC2"
        pathinfo.status = 2
        listpath.Add(pathinfo)
        pathinfo.path = "DDDDDDDD2"
        pathinfo.status = 2
        listpath.Add(pathinfo)
    End Sub
    Private Sub ListBox1_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles ListBox1.DrawItem
        Dim myfont As New Font("arial", 12, FontStyle.Bold)
        Dim heightitem As Integer = 0

        For Each item In listpath
            If item.status = 0 Then
                e.Graphics.DrawString(item.path, myfont, Brushes.Red, 2, 2 + heightitem)
            End If
            If item.status = 1 Then
                e.Graphics.DrawString(item.path, myfont, Brushes.Yellow, 2, 2 + heightitem)
            End If
            If item.status = 2 Then
                e.Graphics.DrawString(item.path, myfont, Brushes.Green, 2, 2 + heightitem)
            End If
            heightitem += Convert.ToInt32(e.Graphics.MeasureString(item.path, myfont).Height * 1.25)
        Next

    End Sub

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        ListBox1.DrawMode = DrawMode.OwnerDrawVariable
        GetPath()
    End Sub
End Class


le bug dès que je scroll tout est chamboulé
à moins que tu as fait autrement
Commenter la réponse de cs_ShayW

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.