[VB.NET] Ciclare una textbox

mercoledì 26 dicembre 2007 - 10.40

marco.santilli Profilo | Junior Member

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

logicamente mi da errore per impostando

dim report as StampaFoglio

e poi scrivo

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

mi dice che il controllo (txtnome & i) non esiste.




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!!!!


-------------------------


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

the_follet Profilo | Newbie

Ciao,
questa piccola Sub ti recupera dal form tutte le textboxes che hanno la struttura "txtnome" + numero e ti apre un messagebox per visualizzare l'elenco dei risultati.

Private Sub msgNomiTextboxes()
Dim msg As String = "TextBoxes trovate nel form:" & vbCrLf & vbCrLf
Dim Contatore As Integer = 1
For Each CTRL As Control In Me.Controls
If TypeOf (CTRL) Is TextBox Then
If CTRL.Name = "TxtNome" & Contatore Then
msg &= CTRL.Name & vbCrLf
Contatore += 1
End If
End If
Next
MsgBox(msg)
End Sub

La formula è semplicissima:
- innanzitutto esamina tutti i controlli presenti nel form;
- SE il controllo nel ciclo For Each è di tipo TextBox prosegue;
- SE il nome di questa textbox è composto da "nome" + numero fai eseguire il codice che interessa a te. Presumibilmente utilizzerai una istruzione SELECT CASE per assegnare il valore stabilito per le singole textbox.

Non dovresti avere problemi ad utilizzare questa routine per i tuoi scopi, ma nel caso fammi sapere

Saluti ed auguri,
Luca

the_follet Profilo | Newbie

Se hai risolto (come credo) accetta la risposta, plz.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5