In mijn CListview wil ik verandering van selectie van een item in de list opvangen. Dit zijn als een item met de muis wordt geklikt, of als door items wordt gescrolld met de pijltjes. Ook wil ik opvangen als er GEEN item meer is geselecteerd.
Dit alles wordt opgevangen door OnItemChanged en OnItemChanging. De gebeurtenissen kan ik prima opvangen en afhandelen, maar het gedrag van OnItemChanged snap ik niet.
Deze gebeurtenis wordt namelijk 3 keer aangeroepen als er een andere item wordt geselect:
[item0 is geselecteerd]
-> Gebruiker klikt nieuwe item of met pijltjes
-> [1e OnItemChanged]: Item index is oude item, item is nog geselecteerd
-> [2e OnItemChanged]: Item index is oude item, er is geen item meer geselecteerd
-> [3e OnItemChanged]: Item index is nieuwe item, er is een item geselecteerd
OnItemChanged wordt 4 keer aangeroepen, op dezelfde manier als hierboven beschreven maar de 1e OnItemChanged regel wordt 2 keer gedaan.
Ik snap dat OnItemChangING een aantal keer wordt aangeroepen, maar OnItemChanED zou toch pas moeten worden aangeroepen als de verandering van item klaar is?
Ik gebruik deze message om een Preview form in te laden (net als in outlook) en deze hangt af van het soort item dat wordt geselecteerd en OF er uberhaupt een item is geselecteerd. Nu wordt dus 3 keer een (verschillend) form opnieuw geladen (ik kan het reduceren tot 2) maar dit is niet helemaal de bedoeling.
Hoe kan ik dit oplossen?
Dit alles wordt opgevangen door OnItemChanged en OnItemChanging. De gebeurtenissen kan ik prima opvangen en afhandelen, maar het gedrag van OnItemChanged snap ik niet.
Deze gebeurtenis wordt namelijk 3 keer aangeroepen als er een andere item wordt geselect:
[item0 is geselecteerd]
-> Gebruiker klikt nieuwe item of met pijltjes
-> [1e OnItemChanged]: Item index is oude item, item is nog geselecteerd
-> [2e OnItemChanged]: Item index is oude item, er is geen item meer geselecteerd
-> [3e OnItemChanged]: Item index is nieuwe item, er is een item geselecteerd
OnItemChanged wordt 4 keer aangeroepen, op dezelfde manier als hierboven beschreven maar de 1e OnItemChanged regel wordt 2 keer gedaan.
Ik snap dat OnItemChangING een aantal keer wordt aangeroepen, maar OnItemChanED zou toch pas moeten worden aangeroepen als de verandering van item klaar is?
Ik gebruik deze message om een Preview form in te laden (net als in outlook) en deze hangt af van het soort item dat wordt geselecteerd en OF er uberhaupt een item is geselecteerd. Nu wordt dus 3 keer een (verschillend) form opnieuw geladen (ik kan het reduceren tot 2) maar dit is niet helemaal de bedoeling.
Hoe kan ik dit oplossen?