ListView Column

Signaler
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
-
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
-
Bonjour,


Je m'amuse à faire un listView où on aurait la possibilité de choisir la couleur de séléction. En fait c'est pas très compliqué et ça marche déjà plus ou moins, mais j'ai justement un petit problème :


Si mon listView est agrandi (ou qu'une colonne est resizée) alors mon listView ne se rafraîchit pas comme il se le devrait, résultat j'ai un bout de séléction que j'ai dessiné manuellement plus un bout de séléction dessiner par le contrôle lui-même.


Question: comment faire pour savoir quand je dois redessiner ma séléection? (je n'ai pas trouvé d'event du genre OnColumnResize) et OnPaint n'est apparement pas appelé lors du resize.

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever

5 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
86
Salut,

Regarde du côté de l'évènement Layout (hérité de Control) je pense

Cocoricoooooooo !!!!
coq
MVP Visual C#
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
Salut coq et merci de ta réponse.
Malheureusement, l'event Layout ne semble pas résoudre mon problème; voici le bug graphique que j'obtiens, si je redimensionne la colonne 2 :

Au démarrage de la forme, tout est normal. Puis je séléctionne une ligne. Tout se passe correctement, la ligne est justement mise en surbrillance rouge comme je l'ai demandé. Puis je décide d'agrandir la colonne numéro 2, et la, paf, le contrôle se redessine mais n'appelle pas ma méthode. Et c'est étonnant, mais le OnPaint n'est pas appelé non plus. Le contrôle se met donc à jour à mon insu, ce qui provoque le bug qu'on peut voir sur le figure ci-dessus.
Merci de ton aide

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
Les APIS pourraient peut-être m'aider, tu peux me dire comment faire pour ne pas que la séléction soit faite? Ya surement un moyen d'envoyer un message pour stopper ça non?
Ralalala ces APIS, c'est pas mon truc...

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
86
Euh, met déjà ta capture sur un compte web sinon il n'y a que toi qui la voit ([file:///C:/Documents%20and%20Settings/Bidou/Desktop/lstViewSample.JPG file:///C:/Documents%20and%20Settings/Bidou/Desktop/lstViewSample.JPG] ça passe pas génial de notre côté) :-)

Pour les API je regarderais ce week end, en plus j'avais déjà plencher un peu sur ce sujet là il y a quelques temps.

Cocoricoooooooo !!!!
coq
MVP Visual C#
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
Ha oui tiens lol j'ai pensé qu'il uploaderait mon image sur le server CodeS-Source ! Et j'ai même pas pensé à vérifier, car l'image s'affichait normalement chez moi (du moins jusqu'à que je la supprime de mon bureau).
Bon, voici donc l'image en question :

Je pense justement que si j'arrive à supprimer le redessinement de la séléction par le listview, ça réglèrement peut-être mon problème. J'ai trouvé un morceau de code sur le net qui utilisait les APIS et qui apparemment devait faire cette action, mais ça ne marchait pas chez moi, et j'ai vraiment pas encore les compétences pour allez mettre mon grain de sel la dedans ;-)

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever