Newsgroup: it.comp.lang.visual-basic
Titolo: VB Nome oggetti variabile

Ciao a tutti,
scusate ma non sò come spiegarmi e quindi come cercare una soluzione a 
questo problema, probabilmente semplice.
L'ho già fatto in passato ma non mi ricordo più
Ho un form con 10 textbox nominate appunto Text1, Text2, Text3, ecc.
Devo conpilare da codice ma non vorrei scrivere pagine e pagine di 
codice....
Vorrei inserire un While:
n=1
While n<11
   Text & n = "Pippo" '********come risolvo questa riga?? come faccio ad 
avere "n" variabile?
   n = n+1
Wend
Ovviamente l'esenpio di cui sopra non ha senso perchè scriverebbe sempre 
"pippo" ma è per farvi capire la mia esigenza.
Grazie anticipatamente 

 "pippo" ma è per farvi capire la mia esigenza.
Devi utilizzare la proprietà Index.
Text1.Index=0
Text1.Index=1
Text1.Index=...
 n=1
 While n<11
   Text1(n) = "Pippo"
   n = n+1
 Wend
-- 
Ciao Fede
By Chicco Production
http://bcp.freetools.it

 Wend
Se hai già tutti i controlli definiti in fase di design, trasformarli
in un array di controlli, ovvero fare questi due passi:
Dare a tutti textbox lo stesso Name
Impostare per ciascuno la property Index di conseguenza
Se volessi invece generare i textbox dinamicamente in fase di
esecuzione, fai una cosa analoga:
Crei un solo textbox in design, e gli assegni Index=0
Generi i nuovi textBox a runtime con la sintassi
Load Text1(Text1.UBound + 1)
'il textbox appena creato è invisibile e posizionato come quello
originario,
'quindi va riposizionato e visualizzato
Text1(Text1.UBound + 1).Move <nuove coordinate>
Text1(Text1.UBound + 1).Visible = True

 Wend
Usa .Controls
 n=1
 While n<11
    MyForm.Controls.Item("Text" & CStr(n)).Text = "Pippo"
    n = n+1
 Wend
Alberto
-- 
Il tempo e la pazienza possono più della forza o della rabbia

 Wend
Grazie!
questa è la soluzione che avevo adottato anche in passato mi hai 
rinfrescato!
Le altre soluzioni, sicuramente valide in altri campi di applicazione, nel 
mio caso sono troppo complicate.
Comunque grazie a tutti per l'aiuto. 

 mio caso sono troppo complicate.
Però sarebbero la soluzione più corretta.
Questa è una pezza per sbrogliare il fatto che tu abbia usato nomi 
diversi per controlli da ciclare, anzichè un più corretto array di 
controlli.
Ciao
Alberto
-- 
Max Beerbohm: Tutto ciò che è degno di essere fatto è stato fatto 
ripetutamente. Dalle cose mai fatte bisognerebbe tenersi, sospetto, 
molto alla larga.

 controlli.
Il tutto dato per scontato che si parli di VB6, in VB.Net č un poco piů
complesso, non essendoci piů gli array di controlli VB6 style.
Io personalmente nei miei form ho sempre un List Of (Control) flat, cioč
tutti allo stesso livello: infatti i controlli all'interno di un group box
non sono visti come figli diretti di un form, per cui con una semplice
funzione ricorsiva mi carico questo array che poi gestisco come voglio.
PaF

 funzione ricorsiva mi carico questo array che poi gestisco come voglio.
Volendo, puoi farne a meno usando Controls.Find()

 Volendo, puoi farne a meno usando Controls.Find()
Si vero ma avendo realizzato classi che mi gestiscono le azioni CRUD
partendo dai controlli del form mi è comodo questo array (non uso il bind
nativo, che trovo spesso troppo vincolante per i miei scopi).
PaF