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

C# Discussion :

ListView Rafraichissement affichage


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 54
    Par défaut ListView Rafraichissement affichage
    Bonjour,

    Je developpe en C# sous VS2005. J'ai une ListView sous forme de liste (Détails) avec presence de la grille et d'un ScrollBar.

    Quand je déplace ma ScrollBar, j'ai parfois l'affichage qui deconne !!
    J'ai des traits de ma grille au milieu de lignes. Peut-on corriger ce problème d'affichage sans traiter l'évenement de déplacement avec le scrollbar ?

    Solution de contournement : si je fais passer mon application en arriere plan puis de nouveau au premier plan, l'affichage se remet d'aplomb. Donc avec un Paint bien placer je devrais pouvoir m'en sortir.

    PB, je n'ai pas d'evenement sur le déplacement de ma scrollbar et je ne change pas forcement d'item selectionné.

    Merci pour votre aide .

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    si tu fais un Invalidate() sur la ListView ça devrait rafraichir l'affichage...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 54
    Par défaut
    C'est possible,
    mais il faut que je le traite sur un évenement !!
    il faudrait traiter l'evenement du mouvement du scrollbar mais il n'existe pas apparemment !

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    arf... effectivement c'est pas évident

    Sinon tu peux toujours faire un timer qui rafraichit l'affichage toutes les secondes par exemple. Un peu crade mais bon...

  5. #5
    Ziki_s
    Invité(e)
    Par défaut
    T'as essayé de voir si ce problème est présent en testant ton application sur un autre pc ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 54
    Par défaut
    Oui, le pb est présent sur d'uatre PC et sur plusieurs ListView indépendantes.
    Je n'ai pas le PB avec une DatatGridView.

    Sur d'autre ListView, le pb se traduit parfois par la disparition de mes gridlines sur une partie de la listView. C'est vraiment pas terrible, mais ces uniquement un pb de rafraichissement.

    J'aimerais bien trouver une solution plus élegante que le timer !!

    Je suis le seul à rencontrer ce problème ??

    voici le bout de code qui me permet d'initialiser ma listView au cas ou je fasse une grosse boulette !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    string[] data = new string[2];
     
    LstViewMasks.Columns.Add(MyDico.GetText(MyDico.Key.MaskTitle), -2, HorizontalAlignment.Left);
    LstViewMasks.Columns.Add("", -2, HorizontalAlignment.Left);
     
    //Ajout des masques
    foreach (Mask m in PrintersMask)
    {
          data[0] = m.GetPrinterName();
          data[1] = m.GetMaskSelected(); 
          LstViewMasks.Items.Add(new ListViewItem(data));
    }

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    de toutes façons une ListView c'est vraiment pas terrible comme contrôle (essentiellement à cause de l'absence de binding), autant utiliser un DataGridView... sauf bien sûr si tu utilises les modes autres que Details

Discussions similaires

  1. listview et affichage
    Par marso dans le forum Windows Forms
    Réponses: 5
    Dernier message: 29/10/2008, 15h20
  2. Réponses: 4
    Dernier message: 28/12/2007, 07h23
  3. [JTree] Rafraichissement affichage
    Par Sp4ce dans le forum Composants
    Réponses: 4
    Dernier message: 21/09/2007, 10h09
  4. [VBA]Rafraichissement affichage distant
    Par petitours dans le forum Access
    Réponses: 9
    Dernier message: 20/04/2007, 11h14
  5. [C#]Listview et affichage de l'item sélectionné
    Par debug dans le forum Windows Forms
    Réponses: 2
    Dernier message: 11/05/2005, 14h34

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