OVH Cloud OVH Cloud

Propriété Text de SubItems

8 réponses
Avatar
Boris Sargos
Bonjour à tous,

j'ai remarqué que lorsque l'on modifie les propriétés BackColor, Font ou
encore Text d'un ListViewSubItem, ou même d'un ListViewItem, tout le
contrôle ListView owner est redessiné. C'est d'ailleurs normal, c'est
comme ça que le ListView a été conçu.
Mais j'aimerais savoir pourquoi. Car à quoi cela sert-il de redessiner
tout le contrôle quand seulement un bout de texte a été changé dans un
SubItem.
Ensuite, y'a-t-il un moyen d'éviter cette perte de temps, et de ne
redessiner que ce qui est nécessaire.

Merci pour votre aide.

Boris.

8 réponses

Avatar
Yassine loudad
Salut
bonne question !! pense que il ya dans le background de cette listview une
image en mosaique !!! alors si on change le texte !! on doit redessiner le
fond !! ce qui est delicat pcke on sait pas ou vraiment commencer la partie
de l'image affichée ... !! j'espère t'avoir eclairci le truc !!

Allé a++ !!

"Boris Sargos" a écrit dans le message de news:
dk133e$2an$
Bonjour à tous,

j'ai remarqué que lorsque l'on modifie les propriétés BackColor, Font ou
encore Text d'un ListViewSubItem, ou même d'un ListViewItem, tout le
contrôle ListView owner est redessiné. C'est d'ailleurs normal, c'est
comme ça que le ListView a été conçu.
Mais j'aimerais savoir pourquoi. Car à quoi cela sert-il de redessiner
tout le contrôle quand seulement un bout de texte a été changé dans un
SubItem.
Ensuite, y'a-t-il un moyen d'éviter cette perte de temps, et de ne
redessiner que ce qui est nécessaire.

Merci pour votre aide.

Boris.


Avatar
Yassine loudad
Salut
Normal parceque fesons par exemple qu'il ya une image en background affichée
en mosaique !! si on change le texte d'un subitem !! il sera très difficile
(mais faisable) de determiner les parties a afficher de cette image !! c'est
pour ca qu'on redessine le tout !!! mdrrrrrrr !! j'espère t'avoir eclairci
le truc !

allé a#

"Boris Sargos" a écrit dans le message de news:
dk133e$2an$
Bonjour à tous,

j'ai remarqué que lorsque l'on modifie les propriétés BackColor, Font ou
encore Text d'un ListViewSubItem, ou même d'un ListViewItem, tout le
contrôle ListView owner est redessiné. C'est d'ailleurs normal, c'est
comme ça que le ListView a été conçu.
Mais j'aimerais savoir pourquoi. Car à quoi cela sert-il de redessiner
tout le contrôle quand seulement un bout de texte a été changé dans un
SubItem.
Ensuite, y'a-t-il un moyen d'éviter cette perte de temps, et de ne
redessiner que ce qui est nécessaire.

Merci pour votre aide.

Boris.


Avatar
Yassine loudad
Salut
Normal parceque fesons par exemple qu'il ya une image en background affichée
en mosaique !! si on change le texte d'un subitem !! il sera très difficile
(mais faisable) de determiner les parties a afficher de cette image !! c'est
pour ca qu'on redessine le tout !!! mdrrrrrrr !! j'espère t'avoir eclairci
le truc !

allé a#

"Boris Sargos" a écrit dans le message de news:
dk133e$2an$
Bonjour à tous,

j'ai remarqué que lorsque l'on modifie les propriétés BackColor, Font ou
encore Text d'un ListViewSubItem, ou même d'un ListViewItem, tout le
contrôle ListView owner est redessiné. C'est d'ailleurs normal, c'est
comme ça que le ListView a été conçu.
Mais j'aimerais savoir pourquoi. Car à quoi cela sert-il de redessiner
tout le contrôle quand seulement un bout de texte a été changé dans un
SubItem.
Ensuite, y'a-t-il un moyen d'éviter cette perte de temps, et de ne
redessiner que ce qui est nécessaire.

Merci pour votre aide.

Boris.


Avatar
Yassine loudad
"Boris Sargos" a écrit dans le message de news:
dk133e$2an$
Bonjour à tous,

j'ai remarqué que lorsque l'on modifie les propriétés BackColor, Font ou
encore Text d'un ListViewSubItem, ou même d'un ListViewItem, tout le
contrôle ListView owner est redessiné. C'est d'ailleurs normal, c'est
comme ça que le ListView a été conçu.
Mais j'aimerais savoir pourquoi. Car à quoi cela sert-il de redessiner
tout le contrôle quand seulement un bout de texte a été changé dans un
SubItem.
Ensuite, y'a-t-il un moyen d'éviter cette perte de temps, et de ne
redessiner que ce qui est nécessaire.

Merci pour votre aide.

Boris.


Avatar
Yassine loudad
Excusez moi j'avais un prob de connexion, comme tu vois j'ai rediger la
réponse deux fois !!

"Boris Sargos" a écrit dans le message de news:
dk133e$2an$
Bonjour à tous,

j'ai remarqué que lorsque l'on modifie les propriétés BackColor, Font ou
encore Text d'un ListViewSubItem, ou même d'un ListViewItem, tout le
contrôle ListView owner est redessiné. C'est d'ailleurs normal, c'est
comme ça que le ListView a été conçu.
Mais j'aimerais savoir pourquoi. Car à quoi cela sert-il de redessiner
tout le contrôle quand seulement un bout de texte a été changé dans un
SubItem.
Ensuite, y'a-t-il un moyen d'éviter cette perte de temps, et de ne
redessiner que ce qui est nécessaire.

Merci pour votre aide.

Boris.


Avatar
Boris Sargos
Yassine loudad a écrit :
Excusez moi j'avais un prob de connexion, comme tu vois j'ai rediger la
réponse deux fois !!

"Boris Sargos" a écrit dans le message de news:
dk133e$2an$

Bonjour à tous,

j'ai remarqué que lorsque l'on modifie les propriétés BackColor, Font ou
encore Text d'un ListViewSubItem, ou même d'un ListViewItem, tout le
contrôle ListView owner est redessiné. C'est d'ailleurs normal, c'est
comme ça que le ListView a été conçu.
Mais j'aimerais savoir pourquoi. Car à quoi cela sert-il de redessiner
tout le contrôle quand seulement un bout de texte a été changé dans un
SubItem.
Ensuite, y'a-t-il un moyen d'éviter cette perte de temps, et de ne
redessiner que ce qui est nécessaire.

Merci pour votre aide.

Boris.







Salut Yasine, les problèmes de connexion je connais !
Merci pour ta (ou tes) réponse. Mais je ne suis pas convaincu que ce
soit difficile de ne redessiner que le rectangle contenant ce qui a
changé. En effet, pourquoi lors d'un changement de propriété d'un
SubItem subitem ne pas appeler une fonction
ListView.InvalidateSubItem(subitem) ? Ou même utiliser la fonction
membre de l'objet ListView parent Invalidate(subitem.Bounds) ?
Appeler directement Invalidate() me semble vraiment bestial :-).


Boris.
Avatar
Yassine loudad
wé je vois aussi que c un peu bizarre , alors j'essaie de comprendre aussi
looool, déjà ya bcp des trucs a signaler a microsoft !! moi j'ai déjà
signaler un bug dans le richtextbox a microsoft !! ils l'ont reglé
maintenant dans la version final du framework :D

--
Fildomen : 1 + 1 = 10
"Boris Sargos" a écrit dans le message de news:
dklfts$cbb$
Yassine loudad a écrit :
Excusez moi j'avais un prob de connexion, comme tu vois j'ai rediger la
réponse deux fois !!

"Boris Sargos" a écrit dans le message de news:
dk133e$2an$

Bonjour à tous,

j'ai remarqué que lorsque l'on modifie les propriétés BackColor, Font ou
encore Text d'un ListViewSubItem, ou même d'un ListViewItem, tout le
contrôle ListView owner est redessiné. C'est d'ailleurs normal, c'est
comme ça que le ListView a été conçu.
Mais j'aimerais savoir pourquoi. Car à quoi cela sert-il de redessiner
tout le contrôle quand seulement un bout de texte a été changé dans un
SubItem.
Ensuite, y'a-t-il un moyen d'éviter cette perte de temps, et de ne
redessiner que ce qui est nécessaire.

Merci pour votre aide.

Boris.







Salut Yasine, les problèmes de connexion je connais !
Merci pour ta (ou tes) réponse. Mais je ne suis pas convaincu que ce soit
difficile de ne redessiner que le rectangle contenant ce qui a changé. En
effet, pourquoi lors d'un changement de propriété d'un SubItem subitem ne
pas appeler une fonction ListView.InvalidateSubItem(subitem) ? Ou même
utiliser la fonction membre de l'objet ListView parent
Invalidate(subitem.Bounds) ?
Appeler directement Invalidate() me semble vraiment bestial :-).


Boris.


Avatar
Ambassadeur Kosh
quand tu invalidate une region, ça ne repeind "que" cette region.
par contre, il ne faut pas t'attendre à ce que le controle t'invalide juste
la zone de l'item, parceque, potentiellement, tu pourrais afficher dedans
disons des infos qui dependent de ce que tu as selectionné, vois tu. si tu
veux refaire la mécanique, essaye, mais je ne suis pas convaincu que ton
bottleneck soit la.

Cordialement

Frédéric