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

Windows Forms Discussion :

faire defiler donnée dans listview comme dans listbox ?


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 68
    Points : 50
    Points
    50
    Par défaut faire defiler donnée dans listview comme dans listbox ?
    bonjour,

    je fais defiler ("empiler vers le bas") les données recues via le port com dans une listbox, cela fonctionne bien mais je n'arrive pas a changer la couleur d'un item (faire un sur deux en rouge par exemple en fonction des donnée recues). je suis alors passé sur une listview car j'ai lu dans le forum qu'il était facile de changer la couleur d'une ligne.

    mais le probleme est que lorsque la fenêtre de la listview est remplie elle crée une seconde colonne au lieu de faire un scroll barre vers le bas comme pour la listbox.

    est -il possible d'empecher cette 2em colonne et de faire tout empiler sur une seul colonne comme pour la listbox ?

    ou est il possible de changer un item de couleur dans un listbox.

    merci de votre aide.

  2. #2
    Membre chevronné
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 179
    Points : 1 776
    Points
    1 776
    Par défaut
    Bonjour.

    Concernant le ListBox, cela n'est pas si difficile de piloter l'affichage.

    Il suffit d'overrider le Ondrawitem et de positionner le DrawMode adéquat.

    Exemple d'un listbox affichant les textes commençant par "A" sur fond dégradé :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    Public Class LBExemple
        Inherits ListBox
     
        ' On masque la propriété afin qu'elle ne soit pas modifiable
        Public Shadows ReadOnly Property DrawMode() As Windows.Forms.DrawMode
            Get
                Return MyBase.DrawMode
            End Get
        End Property
        Public Sub New()
            MyBase.DrawMode = Windows.Forms.DrawMode.OwnerDrawFixed
        End Sub
     
        Protected Overrides Sub OnDrawItem(ByVal e As System.Windows.Forms.DrawItemEventArgs)
     
            If e.Index < 0 Or Me.DesignMode Then Exit Sub
     
            '
            ' Couleur de fond : 
            ' si commence par A  -->  Rouge
            ' sinon --> on laisse faire
            '
            Dim strText As String = Me.GetItemText(Me.Items(e.Index))
     
            If strText.StartsWith("A") Then
                Dim backbrush As New  _
                    System.Drawing.Drawing2D.LinearGradientBrush(e.Bounds, _
                    Color.Red, _
                    Color.Fuchsia, _
                    System.Drawing.Drawing2D.LinearGradientMode.Horizontal)
                e.Graphics.FillRectangle(backbrush, e.Bounds)
            Else
                ' On dessine le backGround standard
                e.DrawBackground()
            End If
     
            e.Graphics.DrawString(strText, Me.Font, System.Drawing.Brushes.Black, e.Bounds)
     
            ' Dessin du Focus de l'item si besoin
            e.DrawFocusRectangle()
     
        End Sub
     
    End Class
    Pour le ListView, il existe une propriété pilotant le mode d'affichage (que je n'ai plus en tête) mais qui devrait te permettre de limiter à une seule colonne.

    Cdt.
    Bon à savoir : la touche F1 ne sert pas à commander des places pour le grand prix de Belgique.

Discussions similaires

  1. Réponses: 53
    Dernier message: 08/02/2019, 18h11
  2. Une image dans un Jpanel dans un Jpanel dans un Jframe
    Par ThomasH dans le forum Agents de placement/Fenêtres
    Réponses: 9
    Dernier message: 09/12/2009, 20h23
  3. Peut-on ecrire vba dans excel comme dans access ?
    Par docjo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/10/2009, 07h38
  4. Filtre dans formulaire comme dans Excel
    Par chelmi95 dans le forum IHM
    Réponses: 2
    Dernier message: 09/10/2008, 22h02
  5. Réponses: 2
    Dernier message: 04/06/2008, 01h31

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