The Mighty Atom
Terugkerende gebruiker
- Lid geworden
- 22 mei 2008
- Berichten
- 1.380
Ja, wat is dat nou weer voor een vreemde topic titel, zul je wel denken. Ik weet niet hoe ik het anders moet noemen, maar ik heb weer een achterlijke rare bug gevonden wat ik echt niet kan gebruiken.
Men neme een TabControl. Standaard komt deze met twee tabpages, en dat is prima. Op TabPage2 heb ik een ListView control geplaatst. TabPage1 blijft verder leeg.
Vervolgens laat ik de ListView vullen met de getallen 1 t/m 10. Dit gebeurt in het Form_Load event. Daarna laat ik door middel van een Random object willekeurige getallen selecteren/highlighten. Dit gebeurt eveneens in het Form_Load event. Dus elke keer als het programma start, zijn er steeds weer andere getallen geselecteerd/highlighted.
Vervolgens plaats ik een knop. Onder het click event van deze knop heb ik een simpele For Each loop waarin ik alle geselecteerde/highlighted getallen in de ListView op TabPage2 in een messagebox laat zien door gebruik te maken van een ListViewItem object en te controlleren op de Selected property.
Als ik nu het programma start, en ik klik op de knop, verwacht ik dus een messagebox te zien dat elk geselecteerde/highlighted getal in de ListView op TabPage2 laat zien.
Helaas is dit niet geval. Ik weet dat de ListView gevuld is met items, dit gebeurde in het Form_Load event, dus voordat ik op de knop kon klikken, dus je zou verwachten dat ik gewoon de geselecteerde/highlighted getallen kan verkrijgen. Dit gebeurt dus niet.
TENZIJ, ik even de inhoud van TabPage2 bekijk. Ik zie daar dus de ListView met de 10 getallen waarvan er een aantal randomly geselecteerd/highlighted zijn.
Als ik nu op de knop klik, krijg ik wel netjes de geselecteerde/highlighted getallen in een messagebox te zien. Waarom werkt het wel nadat je eerst de ListView/inhoud van TabPage2 hebt gezien? Ik moet de getallen verkrijgen zonder eerst de inhoud van TabPage2 te moeten bekijken, want je kan moeilijk je endusers vertellen dat ze eerst minstens één keer de inhoud van TabPage2 moeten bekijken, alvorens ze proberen om informatie vanaf TabPage2 te verkrijgen, in dit geval dus de geselecteerde/highlighted getallen in de ListView.
Af en toe heeft VB en/of .NET echt de vreemdste en raarste kuren...
Weet iemand hoe dit op te lossen valt?
Als je dit zelf wilt proberen, kan dat door het testbestandje te downloaden:
TabControl Bug ofzo (Gemaakt in VS 2010, Framework 2.0, zip bestand, 9 kb)
Men neme een TabControl. Standaard komt deze met twee tabpages, en dat is prima. Op TabPage2 heb ik een ListView control geplaatst. TabPage1 blijft verder leeg.
Vervolgens laat ik de ListView vullen met de getallen 1 t/m 10. Dit gebeurt in het Form_Load event. Daarna laat ik door middel van een Random object willekeurige getallen selecteren/highlighten. Dit gebeurt eveneens in het Form_Load event. Dus elke keer als het programma start, zijn er steeds weer andere getallen geselecteerd/highlighted.
Vervolgens plaats ik een knop. Onder het click event van deze knop heb ik een simpele For Each loop waarin ik alle geselecteerde/highlighted getallen in de ListView op TabPage2 in een messagebox laat zien door gebruik te maken van een ListViewItem object en te controlleren op de Selected property.
Als ik nu het programma start, en ik klik op de knop, verwacht ik dus een messagebox te zien dat elk geselecteerde/highlighted getal in de ListView op TabPage2 laat zien.
Helaas is dit niet geval. Ik weet dat de ListView gevuld is met items, dit gebeurde in het Form_Load event, dus voordat ik op de knop kon klikken, dus je zou verwachten dat ik gewoon de geselecteerde/highlighted getallen kan verkrijgen. Dit gebeurt dus niet.
TENZIJ, ik even de inhoud van TabPage2 bekijk. Ik zie daar dus de ListView met de 10 getallen waarvan er een aantal randomly geselecteerd/highlighted zijn.
Als ik nu op de knop klik, krijg ik wel netjes de geselecteerde/highlighted getallen in een messagebox te zien. Waarom werkt het wel nadat je eerst de ListView/inhoud van TabPage2 hebt gezien? Ik moet de getallen verkrijgen zonder eerst de inhoud van TabPage2 te moeten bekijken, want je kan moeilijk je endusers vertellen dat ze eerst minstens één keer de inhoud van TabPage2 moeten bekijken, alvorens ze proberen om informatie vanaf TabPage2 te verkrijgen, in dit geval dus de geselecteerde/highlighted getallen in de ListView.
Af en toe heeft VB en/of .NET echt de vreemdste en raarste kuren...

Weet iemand hoe dit op te lossen valt?
Als je dit zelf wilt proberen, kan dat door het testbestandje te downloaden:
TabControl Bug ofzo (Gemaakt in VS 2010, Framework 2.0, zip bestand, 9 kb)