none
Alterar propriedade de vários componentes em tempo de execução. RRS feed

  • Pergunta

  • O que preciso é alterar a propriedade text dos meus groupbox, sem precisar alterar um por um, por exemplo:

    ao invés de fazer assim:

    groupbox1.Text = "teste";

    groupbox2.Text = "carrinho";

    groupbox3.Text = "c ta bao";

    ...

    ...

    ...

    groupbox80.Text = "e ae";

    //80 vezes

    Quero fazer isso dentro de uma estrutura de repetição, pra não precisar digitar este comando 80 vezes.

    Portanto, cada hora que percorrer minha repetição tenho que acessar um groupbox diferente

    Exemplo:

    // Na primeira execução da repetição alterar o groupbox1
    
    groupbox1.Text = stringQualquer;
    
    // Na segunda execução alterar o groupbox2
    
    groupbox2.Text = stringQualquer;
    
    //até executar o octogésimo groupbox
    terça-feira, 28 de julho de 2015 23:44

Respostas

  • Olá Eduardo,

    faça o seguinte:

    string stringQualquer = "";
    for (int i = 1; i <= 80; i++)			
    {
      (this.Controls["groupbox" + i] as GroupBox).Text = stringQualquer;
    }


    Att, Lucio Rogerio


    Espero ter ajudado, se ajudei, por favor Vote como Útil, e se resolvi seu problema, clique em Marcar como Resposta.



    terça-feira, 28 de julho de 2015 23:58
  • Olá Eduardo,

    eu realmente não tinha como saber que o seu GroupBox estava dentro de um Panel. Mas como pode constatar, o código que eu enviei estava correto. Só faltou mesmo informar o Container (Panel)

    Sobre encontrar uma Label dentro do seu GroupBox, faça o seguinte:

    string stringQualquer = "";
    for (int cont = 1; cont <= 80; cont++)			
    {
      (this.panel1.Controls["groupbox" + cont] as GroupBox).Text = stringQualquer;
      ((this.panel1.Controls["groupbox" + cont] as GroupBox).Controls["lbl" + cont] as Label).Text = stringQualquer;
    }


    Att, Lucio Rogerio


    Espero ter ajudado, se ajudei, por favor Vote como Útil, e se resolvi seu problema, clique em Marcar como Resposta.


    quarta-feira, 29 de julho de 2015 02:43

Todas as Respostas

  • Lucio, acho que é algo assim, porém esta dando o seguinte erro quando tento fazer

    {"Referência de objeto não definida para uma instância de um objeto."}

    quarta-feira, 29 de julho de 2015 01:00
  • Descobri o que estava acontecento, é pq meu groupbox esta dentro de um Painel, daí coloquei assim

                    (this.panel1.Controls["gb" + cont] as GroupBox).Text = stringQualquer;
              

    e resolveu (muito obrigado), porém também preciso alterar um label que tenho dentro do mesmo groupbox, tentei assim mas deu o erro anterior. 

        (this.panel1.Controls["lbl" + cont] as Label).Text = stringQualquer;
    Será que tenho que referenciar o groupbox novamente neste comando? como seria isso? No mais muito obrigado, me quebra só mais esta, rsrsrs





    quarta-feira, 29 de julho de 2015 01:22
  • Olá Eduardo,

    eu realmente não tinha como saber que o seu GroupBox estava dentro de um Panel. Mas como pode constatar, o código que eu enviei estava correto. Só faltou mesmo informar o Container (Panel)

    Sobre encontrar uma Label dentro do seu GroupBox, faça o seguinte:

    string stringQualquer = "";
    for (int cont = 1; cont <= 80; cont++)			
    {
      (this.panel1.Controls["groupbox" + cont] as GroupBox).Text = stringQualquer;
      (this.panel1.Controls["groupbox" + cont] as GroupBox).Controls["lbl" + cont] as Label).Text = stringQualquer;
    }


    Att, Lucio Rogerio


    Espero ter ajudado, se ajudei, por favor Vote como Útil, e se resolvi seu problema, clique em Marcar como Resposta.

    Bom dia Lucio muito obrigado.

    Realmente não tinha como vc saber rsrs, Lucio, nem sei como agradecer, muito obrigado mesmo, funcionou que uma beleza, rsrs.

    Obs: Para quem quiser utilizar este código faltou um parêntese no inicio da segunda expressão ficando assim:

    ((this.panel1.Controls["groupbox" + cont] as GroupBox).Controls["lbl" + cont] as Label).Text = stringQualquer;

    Só estou escrevendo isso no caso de alguém tiver buscando sua resposta neste tópico.

    :) :) :) :)

    quarta-feira, 29 de julho de 2015 10:27