Ottenere tutti i controlli del form

mercoledì 22 giugno 2011 - 04.54
Tag Elenco Tags  VB.NET  |  .NET 3.5  |  Windows XP  |  Visual Studio 2010  |  Visual Studio 2008

willy_80 Profilo | Senior Member

Ciao a tutti mi capita molto spesso di fare programmi multilingua.
Ogni volta all'apertura di un form carico i testi dei controlli presenti nel form pescandoli da un file.
Ho provato a creare una dll che esegua questa operazione in automatico, per fare ciò la libreria per ogni controllo presente nel form, da un database pesca il testo associato in funzione del nome del controllo e ve lo associa, il sistema funziona abbastanza bene ho solo un piccolo problema.

Per ciclare su tutti i controlli presenti nel form faccio così:

For i = 0 To Me.Controls.Count - 1
AssociaTesto(Me.Controls(i).Name)
Next

AssociaTesto è la routine che associa il testo

Il problema è che se ho dei controlli contenuti in "contenitori" tipo GroupBox il sistema vede la GroupBox ma non vede i controlli al suo interno, mi potete aiutare?

luka82 Profilo | Junior Member

Con una funzione ricorsiva:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
Ciao

willy_80 Profilo | Senior Member

ci avevo già pensato però alcune volte ho un contenitore nel contenitore quindi dovrei continuare a fare ricorsi, fattibile ma incasinato.
speravo ci fosse un sistema diretto per leggere tutti i controlli.

luka82 Profilo | Junior Member

Scusami perché dici che è incasinato?
Uso quella funzione per ripulire tutte le TextBox di una form e funziona con qualsiasi tipo di controllo presente sulla Form(Panel,GroupBox...).
Ti ripeto, alla funzione basta che gli passi "Me" così esegue il ciclo su tutti i controlli della form, se invece gli passi solo una GroupBox ti ciclerà solo sui controlli di quel "Control"
Ciao
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5