In Net is de form array niet meer aanwezig. Elke Control ,waarvan Form er
een i,s heeft een Control collection (in VB6 wordt alles gewoon array
genoemd, in Net wordt er onderscheid gemaakt in de manier zoals een array
technish is gemaakt).
Je kan echter gewoon je controls in een collectie benaderen, bijvoorbeeld
door ze in een aparte array te zetten zoals.
Dim myControlArray() as Control = {label1, textbox2, listbox3} 'Dit is dus
een echte array
Het maakt niet uit wat voor control het is.
Nu kan je dus bijvoorbeeld de hoogte gelijk maken door te doen
\\\
For Each x as Control in myControlArray
x.Height = 20
Next
///
Om dit te doen moet het dan well een property van Control zijn.
Een checkbox bijvoorbeeld heeft een aantal extra properties en die moet je
dan anders benaderen.
Dit is een voorbeeld, er zijn een eindeloos aantal alternatieven hiervoor.
Cor
"petert" <pet...@discussions.microsoft.com> wrote in message
news:DE9DEC02-C8F2-4F9C...@microsoft.com...
bedankt voor je reactie. Dit had ik al begrepen en als zodanig georobeerd en
het werkt zonder probleem.
Het probleem is echter dat ik een formulier heb met heel veel controls in
dit geval labels. Wat ik graag wil is de labels via een stukje code aanmaken
inplaats van ze allemaal te definieren. Zoals je dat in vb6 kon doen met een
load en een indexnummer. De vraag is hoe maak je in een form automatisch een
reeks label met een unieke naam bijv label1, label2, label3 enz. dit in een
For Next loop
zodat ik hem na het aanmaken direct kan toevoegen aan een collection.
--
Peter
Zoals ik al schreef er zijn een eindeloos aantal mogelijkheden en als je er
mee bekend bent ontdek je dat het een veelvoud aan mogelijkheden is in
vergelijking met VB6.
Dit is over buttons maar kan niet zo goed met labels, in dit voorbeeld zit
meteen het toevoegen van de click events.
http://www.vb-tips.com/DynamicControl.aspx
Ik hoop dat dit een idee geeft.
Let er echter op dat deze controls in de methode worden gedefinieerd.
Ze zijn dus uitsluitend te benaderen later via de events (zie ook het
voorbeeld hiervoor voor de casting) of via de control collection.
Eventueel kan je ook de name of de tag propery gebruiken maar je komt er dan
niet ergens willekeurig bij.
VB voor Net houdt zich aan de regels van het OOP programmeren.
Overigens kan je wel bij controls komen die op een form staan.
For each ctr as control in Controls
if TypeOf(ctr) is label
ctr.Text = ""
end if
Next
Maar let op wat ik eerder schreef, bijvoorbeeld een tabpage heeft weer zijn
eigen controls.
Cor
"petert" <pet...@discussions.microsoft.com> wrote in message
news:68AB66FB-6CA5-483C...@microsoft.com...
dit is precies wat ik maar niet kon vinden en nodig heb. Ik was in een
compleet verkeerde richting aan het denken en proberen. Het is mij volkomen
duidelijk dat alleen de properties voor het object bestaan die het normaal
ook heeft.
Nogmaals bedankt voor de oplossing.