E' possibile indicizzare textbox

lunedì 23 gennaio 2006 - 12.44

valerik Profilo | Junior Member

E' possibile indicizzare textbox,
oppure come devo fare?

Ciciu Profilo | Senior Member

Ciao.
Cosa significa "indicizzare" ?

Se intendo qualcosa del genere this.controls[<nomecontrollo>].text per assegnare/leggere il valore di una textbox posta sulla Tua form, beh si...

Ma mi sembra una risposta che ho dato al Tuo thread di questa mattina...

In caso questa non sia la risposta che Ti aspettavi, allora non ho capito la domanda...
Ciao - Fabio

Fabio G

Giamp72 Profilo | Junior Member

non si possono utilizzare Array di textbox o altri oggetti in .Net (al contrario di visual basic)
l'unica soluzione è scorrere la collezione di controlli del form o del panel.
Supponi ad esempio di avere in visual basic tx(1) tx(2) e tx(3) da portare in .Net:
nel tuo form diventeranno Tx1 Tx2 e Tx3.

Un metodo per scorrere l'elenco è:

dim ctrl as control
for each ctrl in form.controls
If TypeOf ctrl Is TextBox Then
'questo è un text box quindi valuto se è uno di quelli che cerco..
if ctrl.name="tx1" or ctrl.name="tx2" or ctrl.name="tx3" then
'Trovato!!
end if
endif
next

ti consiglio eventualmente di utilizzare il campo Tag come campo di riferimento per le tue ricerche..
se ad esempio metti sul tag di ognuno dei tuoi textbox lo stesso nome, nel ciclo for each valuterai solo gli oggetti che hanno nella proprietà tag quel nome specifico...
Spero di esserti stato utile.
Ciao

Giamp72

Ciciu Profilo | Senior Member

Corretto.

Il problema, secondo me, è che facendo un ciclo "completo" su tutti i controlli della form "perde" più tempo.

Se dal datareader riuscisse ad ottenere in qualche maniera l'identificativo del campo da aggiornare, sarebbe più veloce l'indirizzamento diretto del campo TextBox.

Nota : this.controls["nomecontrollo"].text NON corrisponde agli indici del VB6. E' l'indirizzamento dei controlli presenti sulla form.

Ovviamente, è necessario essere sicuri che il controllo indirizzato abbia una proprietà TEXT (e, quindi, che sia un TextBox....)

Ciao - fg

Fabio G

Giamp72 Profilo | Junior Member

se non si vuole ciclare su tutti i controlli ( il mio era un esempio generico)
si può semplicemente scrivere:

dim ctrl as textbox
for each ctrl in form.controls
..
..
..

next

in questo modo vengono scorsi solo gli oggetti textbox presenti sul form...

ad ogni modo il post iniziale non è chiarissimo.. perciò non si capisce il motivo per cui
deve scorrere i textbox come fossero un array e quindi non è possibile capire quale sia
la strada più corretta ed efficente..


Giamp72
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5