Bonjour,
J'utilise la nouvelle version du listview (.net framework 2.0). J'ai décidé d'utiliser ce control en mode virtuel (à cause de la grande quantité d'éléments contenus) et j'ai donner la valeur true à la propriété ownerdraw (pour avoir un plus grand controle sur l'apparence des éléments dessinés).
Les éléments (items) et sous éléments (sub items) sont correctement affichés tant que je ne bouge pas ma souris au dessus des sous éléments. Dès que je bouge ma souris au dessus des sous éléments, le contenu (une string) disparait. A première vue, ca ressemble à un problème d'invalidation des sous éléments qui se fait mal dans le cas d'un évênement "mouse over".
J'ai placé un breakpoint dans la fonction qui dessine les sous éléments mais je ne rentre éffectivement jamais dedans quand j'agite ma souris au dessus du contenu de la liste.
Voici les fonctions que j'ai utilisées:
protected override void OnDrawColumnHeader(DrawListViewColumnHeaderEventArgs e)
protected override void OnDrawItem(DrawListViewItemEventArgs e)
protected override void OnDrawSubItem(DrawListViewSubItemEventArgs e)
protected override void OnRetrieveVirtualItem(RetrieveVirtualItemEventArgs e)
Dans mon constructeur, voici les propriétés que j'ai initialisées:
SetStyle(ControlStyles.DoubleBuffer, true);
this.OwnerDraw = true;
this.VirtualMode = true;
this.DoubleBuffered = true;
Ca parrait presque incroyable mais je me demande si il n'y a pas un bug dans la version 2.0 du listview. J'apprécierais énormément si quelqu'un pouvait m'éclairer sur ce sujet.
J'ai attaché un projet simple avec un exemple concret à ce "post".
Merci pour votre aide,
Fred
Partager