PDA

View Full Version : [VB.NET] Creare un ciclo


OrcaAssassina
24-12-2007, 18:34
Devo stampare un foglio dove ci sono molti controlli tutti rinominati in ordine crescente

ad esempio: txtNome01 - txtNome02 - txtNome03 - txtNome04

E cosi via dicendo. in pratica devo riempire un foglio prestampato con dei dati

io volevo creare una ciclo che da solo mi modificava il nome della txt in questione

ad esempio

dim i as integer
i= "1"

(txtnome & i).text = "........valore"

poi incremetare di uno

i = i + 1

mi dite la sinstassi corretta di questa riga:


(txtnome & i).text = "........valore"

devo creare una parte fissa (txtnome) e la parte variabile.

come posso fare??????

Ciao e grazieeeeeee

P.S.: Auguri di Buon Natale!!!!

OrcaAssassina
25-12-2007, 01:51
Ti faccio un esempio

dichiaro il mio report

dim report as new stampafoglio

report.txtNome1.text = "Valore"
report.txtNome2.text = "Valore"
report.txtNome3.text = "Valore"
report.txtNome4.text = "Valore"
report.txtNome5.text = "Valore"
report.txtNome6.text = "Valore"
.
.
.
report.txtNome60.text = "Valore"


non volevo farlo a mano
quindi cercavo un qualcosa per sostituire il numero txtnome con un contatore che incrementavo

solo che se scrivo

report.txtNome & "i".text = "Valore"
cosi scritta la sintassi è sbagliata

qualcuno sa dirmi come creare questa stringa????

ciao e grazieeeeeeeee

^TiGeRShArK^
25-12-2007, 04:57
..ma mettere tutto in un array o in una lista e scorrerti ogni elemento e assegnargli valore? :fagiano:

OrcaAssassina
25-12-2007, 09:05
..ma mettere tutto in un array o in una lista e scorrerti ogni elemento e assegnargli valore? :fagiano:

Si sarebbe bello, per chi lo sa fare!!!!!!!!

ahahahah

Fammi un regalino di natale.....scrivimi un esempio

Ciao e grazieeeeeeee

^TiGeRShArK^
25-12-2007, 15:40
...è da una o due vite che non tocco il VB (x fortuna :asd: )
..cmq dovrebbe essere qualcosa del genere:

Dim textBoxes As Array()
Dim textBox As TextBox
Dim i As Integer

textBoxes = New TextBox(60) REM sempre se il tipo di txtNomex è textBox.
For i = 1 To textBoxes.length
textBox = New TextBox()
textBox.text = "Valore"
textBoxes(i) = textBox

Questo ovviamente in fase di creazione del report.
In fase di lettura ti fai restituire dal report l'array di textBoxes e fai tutto quello che ti pare iterando elemento per elemento.

...certo che però fare un programma in VB senza avere idea di array e cicli.... :stordita:

OrcaAssassina
25-12-2007, 16:50
...è da una o due vite che non tocco il VB (x fortuna :asd: )
..cmq dovrebbe essere qualcosa del genere:

Dim textBoxes As Array()
Dim textBox As TextBox
Dim i As Integer

textBoxes = New TextBox(60) REM sempre se il tipo di txtNomex è textBox.
For i = 1 To textBoxes.length
textBox = New TextBox()
textBox.text = "Valore"
textBoxes(i) = textBox

Questo ovviamente in fase di creazione del report.
In fase di lettura ti fai restituire dal report l'array di textBoxes e fai tutto quello che ti pare iterando elemento per elemento.

...certo che però fare un programma in VB senza avere idea di array e cicli.... :stordita:

Mi da errore

textBoxes = New TextBox(60) REM sempre se il tipo di txtNomex è textBox.
For i = 1 To EserciziTotale
textBox = New TextBox()
textBox.Text = "Valore"
textBoxes(i) = textBox
Next

Impossibile convertire il valore di tipo "System.Windows.Form.TextBox" in "System.Array"

^TiGeRShArK^
25-12-2007, 17:04
Mi da errore

textBoxes = New TextBox(60) REM sempre se il tipo di txtNomex è textBox.
For i = 1 To EserciziTotale
textBox = New TextBox()
textBox.Text = "Valore"
textBoxes(i) = textBox
Next

Impossibile convertire il valore di tipo "System.Windows.Form.TextBox" in "System.Array"
perchè ovviamente ho sbagliato nel Dim :p

Dim textBoxes As TextBox()
Dim textBox As TextBox
Dim i As Integer

textBoxes = New TextBox(60) REM sempre se il tipo di txtNomex è textBox.
For i = 1 To textBoxes.length
textBox = New TextBox()
textBox.text = "Valore"
textBoxes(i) = textBox

OrcaAssassina
26-12-2007, 01:37
Domani mattina provo poi ti faccio sapere

OrcaAssassina
26-12-2007, 09:01
textBoxes = New TextBox(60) REM sempre se il tipo di txtNomex è textBox.
For i = 1 To textBoxes.length
textBox = New TextBox()
textBox.text = "Valore"
textBoxes(i) = textBox

La classe "System.Windows.Form.TextBox" non può essere indicizzata perchè non contiene proprietà predefinite.


Basta me so stufato.......rinuncio!!!!!!!!!


Ciao e grazieeeeeeeeeeeee

Anche perchè ragionando sul codice, non mi sembra adatta a quello che mi serve.....perchè una volta creato l'array che ci faccio, lo devo asseggnare ai controlli, sono proprio quelli dove ho il problema. cioè tutti controli diversi che differenziano solo per il numero finale.
Io il mio array ce l'ho già....è un dataset da passargli.

Ciao e grazie lo stesso