Info alleen te verkrijgen wanneer container minstens 1 keer bezocht is

Status
Niet open voor verdere reacties.

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...:mad:

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)
 
Meer dan 1000 views maar geen enkele reactie.
Gelukkig is daar The Code Project, waar zat knappe koppen op zitten.

Het toevoegen van:

Code:
Dim PointlessVar As IntPtr = ListView1.Handle

...in het button click event, vlak voordat je de messagebox aanroept heeft geholpen.

Thanks, Luc! :thumb:
 
Hi The Mighty Atom

ik loop al een tijdje tegen dit probleem aan.
heb een tappage met twee tabbladen
tappage1 met een adres.
tappage2 twee met een alternatief adres.

dit adres moet gevuld worden in een ander form dit werkt aleen als ik eerst tappage2 heb geopend.
Het overzetten doe ik met een button
Snap ook niet hoe dit kan.
heb dit opgelost door
Code:
TabControl1.SelectedIndex = 0
TabControl2.SelectedIndex = 1
TabControl1.SelectedIndex = 1

dit is niet zo netjes maar werkt wel ik open en sluit de tappage even

ik snap je oplossing niet daar ik geen buton code van je heb

mischien kan je mij helpen dit op een nette manier te doen????

al vast bedankt
 
En als je nou:

Code:
Dim PointlessVar1 As IntPtr = naamvanadres.Handle
Dim PointlessVar2 As IntPtr = naamvandieandere.Handle

onder die knop zet? Werkt het dan?
 
Hi Snap nu de bedoeling
het werkt heelhartelijk dank voor je hulp

Groet Old Hippy
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan