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
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:
Entenderam, sei que não funciona dessa maneira, mas tem alguma maneira de mudar propriedades de um objeto pelo nome armazenado em uma string??
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
Curtir tópico
+ 0
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...´
}
}
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
Clique aqui para fazer login e interagir na Comunidade :)