Toon posts:

[vb] Tabbladen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben nu bezig met begrijpen van tabbladen en de elementen daarop, maar ik blijf steken bij het punt waarop je een element op een tabblad moet plaatsen of moet aanspreken.
Ik wil dus weten hoe je in runtime een tabblad aan kunt maken, met daarop bv een listbox en hoe je die listbox dan aan kunt spreken.

BTW, ik heb wel gezocht op internet, maar kon hierover niets vinden

Verwijderd

Je moet het anders doen.

Je hebt bv 4 tabs. Op elke tab plaats je een groupcontrol. Deze controls plaats je in een control array (dus je geeft ze dezelfde naam, VB maakt er dan een control array van).

De controls op een tab plaats je IN de groupcontrol van de tab. Welke dat is is snel te bepalen: tab 0 heeft groupcontrol 0 enz.

Nu maak je een event handler voor de click event van de tabcontrol. Daarin zet je alle groupcontrols' visible property op false en alleen de visible property van de groupcontrol van de active tab op true.

Er is in een tabcontrol geen onderscheid tussen inactive en active controls, alle controls worden beschouwd als active, alleen de visible controls, daar kan de user iets mee doen, dus daarmee kan de user events genereren. Zo moet je er tegenaan kijken.

Stoei er eerst maar wat mee, er staat wel wat example code in de VB6 documentatie bij de tabcontrol, ik post anders nog wel wat example code als je er ECHT NIET uitkomt.

Verwijderd

Topicstarter
Ik denk dat ik dat zo ongeveer wel snap, maar het is de bedoeling dat de tabbladen in runtime aangemaakt worden, dat is overigens geen probleem, maar hoe ik daarna een listbox erop zet snap ik niet.

met groupcontrol bedoel je neem ik aan een container :?

Verwijderd

Op zondag 21 april 2002 23:17 schreef Grote Vos het volgende:
Ik denk dat ik dat zo ongeveer wel snap, maar het is de bedoeling dat de tabbladen in runtime aangemaakt worden, dat is overigens geen probleem, maar hoe ik daarna een listbox erop zet snap ik niet.
At runtime gui's genereren is in HTML nog wel te doen, maar voor win32 of bv X11 is het een drama, dat krijg je zelden echt goed zodat het een goede gui wordt. Veelal hoeft het ook niet en kun je volstaan met een gui die je vooraf hebt geconstrueerd.
met groupcontrol bedoel je neem ik aan een container :?
Nee, een frame :)

Verwijderd

Op maandag 22 april 2002 08:52 schreef Otis het volgende:
At runtime gui's genereren is in HTML nog wel te doen, maar voor win32 of bv X11 is het een drama, dat krijg je zelden echt goed zodat het een goede gui wordt. Veelal hoeft het ook niet en kun je volstaan met een gui die je vooraf hebt geconstrueerd.
Dat klopt, maar het idee kan best, door at run time een nieuwe tab aan te maken. Vervolgens een nieuw frame (met 'Load Frame1(UBound(Frame1)): Frame1.Visible = True', hier zijn al zat topics over geweest). En dan je listbox op het frame te plaatsen. Een beetje onhandig, maar 't ken wel :).

  • RoelerMF
  • Registratie: November 2001
  • Laatst online: 21-08 12:08
even vraagje tussendoor

welke component gebruik je voor je tabbladen :?
ikzelf gebruik altijd MS Tab...(nogiets, zoek ik op als ik thuis ben ;) )
Daarop kan je gewoon op ieder tabblad klikken tijdens het maken van je GUI, werkt top vind ik persoonlijk iig beter als die standaard tab control van VB waarbij je met frames moet werken die wel/niet zichtbaar zijn

Je maakt dan gewoon al je tabbladen tijdens ontwerpen en degene die niet zichtbaar moeten zijn zet je dan op invisible als je form laad. zodra je het tabblad dan nodig heb dan zet je visible propertie op true en voila, uw tabblad is weer aanwezig :Y)

Hoop dat het een beetje duidelijk is 8-)

/edit -koenM was me gedeeltelijk te snel af ;) -

>> Democracy is so overrated >>


Verwijderd

Op maandag 22 april 2002 09:05 schreef KoenM het volgende:

[..]

Dat klopt, maar het idee kan best, door at run time een nieuwe tab aan te maken. Vervolgens een nieuw frame (met 'Load Frame1(UBound(Frame1)): Frame1.Visible = True', hier zijn al zat topics over geweest). En dan je listbox op het frame te plaatsen. Een beetje onhandig, maar 't ken wel :).
Ja, wat niet kan, maar het is imho slecht gui-development. Je applicatie kent een begrensde set functionaliteit. Die kun je t.a.t. vooraf modelleren in een gui en alleen een subset tonen tijdens het runnen van de applicatie. At runtime tabs lopen aanmaken lijkt me iets makkelijks doen op een zeer complexe manier.

Verwijderd

Topicstarter
Heb het nu anders gedaan, ik heb een array van listboxen aangemaakt, waarvan ik de eigenschap visible op false heb gezet.
Ik maak in runtime dan een tabblad aan, dit is niet zo moeilijk.
Als er dan op een tabblad geklikt wordt, dan kan ik achterhalen welke index deze heeft en daardoor weet ik ook welke listbox ik 'visible' moet maken.
De enige beperking is dat je maar x aantal tabbladen beschikbaar hebt, aangezien je ook maar x aantal listboxen aanmaakt bij het programmeren van je programma.
Ook jammer is dat als je bijvoorbeeld 10 listboxen aanmaakt, en je gebruikt er maar 2, dat je dan geheugen in gebruik neemt, die je niet nodig hebt.
Het kan dus zo, en jullie reacties bekijkend denk ik dat dit de beste methode is.
Mochten jullie nog andere methoden hebben, die niet al te complex zijn (ben nog maar een aantal dagen bezig in VB) laat het me dan weten, want dan kan ik daar nog wat van leren.
Pagina: 1