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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar