Selecionar objeto por string

.NET

13/05/2009

Bom, galera, seguinte, estou migrando um sistema meu de VB6 para C#, e estou com um problema em um método, no VB6 eu podia fazer isso


For i = 1 To 10 Step 1

Textbox(i).Enabled = False

Next


Porem, pelo o que andei pesquisando não existe mais a propriedade Index nos objetos de tela, então onde eu tinha 10 textbox com o mesmo nome apenas com indices diferentes, estou fazendo dessa maneira

textbox_1
textbox_2
textbox_3

e assim por diante, e agora dentro do For como eu faço para desativar todos de uma só vez, pensei em fazer algo do tipo:

string nm_obj;

for (i=1;i<10;i++)
{
    nm_obj = "textbox_"+i;

    nm_obj.Enabled = false;
}


Entenderam, sei que não funciona dessa maneira, mas tem alguma maneira de mudar propriedades de um objeto pelo nome armazenado em uma string??


Zerocool

Zerocool

Curtidas 0

Respostas

Tiagodb

Tiagodb

13/05/2009

Nesse caso o mais simples é acessar os controles da tela através da coleção Controls e procurar pelo Id do TextBox correspondente.

foreach (Control control in this.Controls)
{
if (control.Name.Equals(´textBox1´))
{
TextBox txtTmp = (TextBox)control;
txtTmp.Text = ´texto aqui...´
}
}


GOSTEI 0
Tiagodb

Tiagodb

13/05/2009

Esqueci no anterior, qualquer dúvida entra no blog da assinatura que será somente sobre tecnologias Microsoft.


GOSTEI 0
Rjun

Rjun

13/05/2009

Pesquise por REFLECTION.


GOSTEI 0
POSTAR