Textbox iterieren

secret Burner

Grünschnabel
Ist es in VB möglich, über die erstellten Textboxen in einer Form zu iterieren und diese auch wieder als Objekt zurück zu erhalten um auf den Text zu zugreifen.

Bsp: Habe 5 Textboxen (Txt_wert1, Txt_wert2,...)

for i=1 to 5
Msgbox Txt_wert & i & .txt
next i

Gibt es für das eine brauchbare Lösung?
 
Du kannst Deine Textboxen als Array anlegen.

Dazu klickst Du auf Deine erste Textbox, clickst auf Kopieren, und dann einfügen, dann wirst Du automatisch gefragt, ob Du ein Array anlegen willst.

Diese kannst Du dann wie folgt bearbeiten:

Code:
    Dim i as integer
    
    For i = 1 to 5
          Msgbox Text1(i).Text
    Next

Grüsse
ronaldh
 
Danke ronaldh, für die prompte Antwort!!

Nur hab ich das Problem jetzt das er mich nicht fragt ob ich ein Array anlegen will oder nicht

Kann man das irgendwo einstellen?
 
Hallo,

Du kannst auch einfach über alle Steuerelemente iterieren und wenn es sich beim aktuellen um eine TextBox handelt, den Text ermitteln:

Visual Basic:
Dim ctl As Control
For Each ctl In Me.Controls
    If TypeOf ctl Is TextBox Then MsgBox ctl.Text
Next ctl

Gruß
 
Hallo secret Burner,

Du arbeitest anscheinend mit VBA. Bei VBA haben Textboxen offensichtlich keine Index-Eigenschaft. Da musst Du es wohl doch so versuchen, wie Ein Freund das empfiehlt.

Mit VBA arbeite ich sehr wenig, ich setze sonst VB6 ein. Und VBA ist leider gegenüber VB6 doch etwas abgemagert.

Viele Grüsse
ronaldh
 
Für VB6:
Wenn er dich nicht fragt, ist der Name der TextBoxen nicht derselbt. Am einfachsten ist, Du machst Dir "eine" TextBox, klickst sie an, drückst STRG+c und dann STRG+v. Jetzt wirst Du auf jedenfall gefragt. Den Index kannst Du in den TextBox Eigenschaften unter "Index" einstellen.
 
Zurück