CICLO SU TEXTBOX

mercoledì 24 gennaio 2007 - 16.00

MATTEHGT Profilo | Junior Member

Avete qualche suggerimento per impostare un ciclo che azzeri tutte le textbox di un form?

Grazie

Saluti

Giscotech Profilo | Junior Member

Io di solito quando per esempio in un form di inserimento devo inserire dei nuovi dati uso i classici :

Textbox1.text = ""
Textbox2.text = 0

Per quale motivo devi ciclare?

Ciao
Giuseppe Scordo

MATTEHGT Profilo | Junior Member

Metti il caso che in un form di inserimento anagrafiche ho più di trenta textbox da azzerare

Giscotech Profilo | Junior Member

Prova con questo:

Public Sub AzzeraTextBox(ByVal c As Control)
Dim _c As Control
Dim _txt As TextBox

For Each _c In c.Controls
AzzeraTextBox(_c)
If TypeOf _c Is TextBox Then
_txt = DirectCast(_c, TextBox)
_txt.Text = ""
End If
Next
End Sub

con questo codice cicli tutti i controlli della form.
TypeOf ti permette di verificare se si tratta di una textbox.

Fammi sapere.

alextyx Profilo | Expert

....e non dimenticare di passare su quelle che potrebbero essere contenute in altri controlli. E' il problema della ricorsività. Ne trovi qualcosa in questa discussione:

http://www.dotnethell.it/forum/messages.aspx?ThreadID=12899

seven.7 Profilo | Junior Member

Forse è più semplice questo comando!

'il ciclo for each esegue un ciclo un numero indeterminato ti volte
For Each controlloAzzera As Object In Me.GrAnagrafica.Controls
'Se la variabile è di tipo TextBox allora azzera il campo
If TypeOf controlloAzzera Is TextBox Then
controlloAzzera.Text = ""
End If
Next

Ciauz

alextyx Profilo | Expert

Ciao seven
Non capisco cosa significa che li ciclo for each cicla un numero indeterminato di volte. Ch'io sappia, esegue una sola scansione dei controlli e quindi si determina dal numero di controlli presenti nella collezione control della form!
Il tuo codice è più compatto, solo perchè eviti, lecitamente, di dichiarare una variabile textbox, ma se vuoi usare l'intellisense e non vuoi grane dall'option strict, la conversione di tipo (con directcast, o ctype) dovresti prevederla, più o meno come suggerito dal collega.
E poi ci sono i controlli nei panel, nei groupbox, ecc..., per i quali ho raccomandato di dare un'occhiata al problema della ricorsività!
Insomma, più di tanto, non è prudente il cercare di risparmiare codice!

seven.7 Profilo | Junior Member

Giusto scusami ma è la voglia di fare che non mi ha fatto pensare! sono alle prese con la mia prima applicazione! grazie mille cmq!
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