Richiamare controlli inseriti da codice

venerdì 11 luglio 2008 - 14.07

willy_80 Profilo | Senior Member

Ciao a tutti,
Sto facendo un'applicazione nella quale devo inserire vari controlli da codice, ciò riesco a farlo senza problemi ma se devo richiamarne uno ad esempio per cambiargli il testo sono costretto a controllare tutti i controlli contenuti nel form e quando trovo quello che ha il "Name" che voglio io allora uso il suo "index" per cambiargli il "Text".
Esiste un sistema più semplice?
PS.: Sò sia che tipo di controllo è "Label / Taxtbox / Picturebox ecc..." e sò anche il name del controllo

Brainkiller Profilo | Guru

>Sto facendo un'applicazione nella quale devo inserire vari controlli
>da codice, ciò riesco a farlo senza problemi ma se devo richiamarne
>uno ad esempio per cambiargli il testo sono costretto a controllare
>tutti i controlli contenuti nel form e quando trovo quello che
>ha il "Name" che voglio io allora uso il suo "index" per cambiargli
>il "Text".
>Esiste un sistema più semplice?

Con il metodo FindControl() e gli passi come parametro il nome del controllo. Dovrai fare anche un casting esplicito esempio se cerchi una label:

Label a=(Label)Page.FindControl("ID_Label"); a.Text="CIAO";

Questo è in C# se usi VB.NET adattalo.
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

willy_80 Profilo | Senior Member

Mi spiace ma non riesco ad applicare questa soluzione...

Brainkiller Profilo | Guru

>Mi spiace ma non riesco ad applicare questa soluzione...

Scusa ho sbagliato io, pensavo fossimo in ambito Web, solo dopo ho visto che stai usando una WinForms.
Allora in questo caso dal .NET Framework 2.0 c'è un metodo chiamato Controls.Find() che ti permette di trovare il riferimento a un controllo senza doverli enumerare con una for e usando l'indice o con una foreach.

Ti posto un frammento di codice:

Dim btn As Button btn = Controls.Find("Button1", True)(0) btn.Text = "CIAO"

La Find ritorna un array quindi il (0) serve per prendere il primo oggetto.
Fammi sapere se ti può essere d'aiuto.
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

willy_80 Profilo | Senior Member

FUNZIONA BENISSIMO TI RINGRAZIO.
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