User controls

Status
Niet open voor verdere reacties.

JeroenSW

Gebruiker
Lid geworden
21 mrt 2005
Berichten
47
Een tijdje geleden heb ik hier een vraag gepost met het dynamisch opbouwen van user-controls uit een excel-bestand. Dat werkt nu voor een groot deel (niet zo'n heel nette code, maar goed... het werkt)

Nu is mijn vraag hoe ik van een aantal user-controls in VBA een array maak. Op http://www.vbexplorer.com/VBExplorer/vb_feature/april2000/april2000.asp staat een goed voorbeeld hoe het in VB kan, maar niet in VBA. M.i. heeft hier VBA beperkingen. Weet iemand of het uberhaupt wel mogelijk is om een array te maken van user controls, bijvoorbeeld:

textInput(0).text = "Textbox nummer 1"
textInput(1).text = "Textbox nummer 2"
textInput(2).text = "Textbox nummer 3"

Groeten,
Jeroen
 
Thanks.

Ik heb misschien wel iets gevonden wat naar de oplossing kan leiden, ik heb namelijk de volgende code geschreven (lees: van het internet geplukt :p )

Code:
    For Each objControl In Me.Controls
         If TypeOf objControl Is MSForms.TextBox Then
               ' Doe iets met objControl, bijvoorbeeld typecasten naar Textbox
               ' zodat ik kan typen: ((TextBox) (objControl)).text = value
         End If
    Next objControl

Kan je ook zo één-twee-drie zeggen of het mogelijk is om te typecasten? :)
 
Laatst bewerkt:
Ook voor jou geldt:

Doe maar een voorbeeldbestandje, zonder alle andere gegevens, enkel de textboxen.
 
Ik heb de oplossing al gevonden :-)

Code:
Private Sub UserForm_Initialize()
    Dim labels(INDICATOR_LENGTH) As control
    Dim i As Integer, tempString As String, cValue As String, indicatorenSheet As String, rij As Integer

    For i = 0 To INDICATOR_LENGTH
        Set labels(i) = Controls.Add("Forms.Label.1")
        
        labels(i).Caption = "caption" + cstr(i)
        labels(i).Left = 30
        labels(i).Top = 20 + 25 * i
    Next i
    
End Sub

En trouwens, als ik intyp
Code:
labels[i].
dan geeft visual basic alleen opties voor de interface control. Je moet gewoon doen alsof je neus bloedt en iets anders typen, bijvoorbeeld:
Code:
labels[i].caption
of iets anders!
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan