Selecionar objeto por string

13/05/2009

0

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

Responder

Posts

25/05/2009

Tiagodb

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...´
}
}


Responder

25/05/2009

Tiagodb

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


Responder

27/05/2009

Rjun

Pesquise por REFLECTION.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar