Pivello ha scritto:
E' quasi un mese che sono bloccato su questo argomento.
Che progressi hai fatto con i suggerimenti che ti sono stati dati, qui e altrove?
Pivello ha scritto:
Ho capito come si creano i controlli dinamici.
Un controllo non è altro che una classe, quindi basta un
new per creare una istanza di un nuovo controllo, usando la classe corrispondente al controllo da creare.
Pivello ha scritto:
Quello che non capisco è come avere il controllo successivamente.
Puoi creare una lista di controlli (
List<Control>) in cui salvare (con il metodo
Add) il riferimento al controllo appena creato, e successivamente fare un ciclo su tale lista per recuperare i riferimenti e agire sui diversi controlli inseriti, oppure usare direttamente la proprietà
Controls del pannello nel quale hai inserito i controlli creati dinamicamente.
Pivello ha scritto:
Le ho provate tante.
Ho creato un array di controlli.
Ho creato tanti controlli.
ho creato delle classi.
Ma alla fine il risultato non cambia.
Certo, andando a caso, a tentoni, è ben difficile beccare fortuitamente la soluzione giusta, e al problema successivo magari si è di nuovo bloccati.
Bisogna fermarsi e ragionare un attimo.
Pivello ha scritto:
se con un pulsante volessi agire su txt3.text come devo fare?
Fai un ciclo su tutti i controlli presenti in
panel1.Controls, che contiene tutti i riferimenti ai controlli creati e inseriti per la visualizzazione nel pannello. Essendo che la lista può contenere controlli diversi, il tipo di ciascun elemento è
Control, che è la classe base da cui derivano tutti i controlli. Quando avrai trovato il controllo che ha il nome che ti interessa, devi a
TextBox (che è il tipo effettivo dell'oggetto) e accedere alle proprietà desiderate del controllo.
Non conosci il significato di "cast"? Non ti è chiaro il concetto di "classe base"?
Studia la OOP.
Ciao!