none
Recuperar botão criado dinamicamente . RRS feed

  • Pergunta

  • Bom dia.

    Estou tentando recuperar o Name de um botão criado dinamicamente para depois de criado alterar suas ropriedade, porem não estou conseguindo alguem pode ajudar?

    Estou criando 2 botões dentro de um panel e gostaria de recupera-los depois de criado, pois um desse botões dentro do painel é um botão de Fechar e o outro e para abrir um formulário, que deverá abrir um formulário correspondente a ele quando eu clicar no botão Fechar gostaria que o painel e os botões gerados  apagados. a intenção é gerar um sistema de abas personalizado igual dos navegadores.

    Caso alguem possa ajudar !

    =============================================

    BOTÃO FECHAR

      public Button Botao_Aba_Formulario_Fechar()
            {
                Button cb = new Button();
                cb.AutoSize = true;
                cb.Size = new Size(25, 25);
                cb.Text = "X";
                cb.Name = textBox1.Text + "_Fechar";
                cb.Cursor = Cursors.Hand;
                cb.FlatAppearance.BorderColor = Color.FromArgb(64, 64, 64);
                cb.FlatAppearance.BorderSize = 0;
                cb.FlatAppearance.MouseDownBackColor = Color.Transparent;
                cb.FlatAppearance.MouseOverBackColor = Color.Red;
                cb.FlatStyle = FlatStyle.Flat;
                cb.Font = new Font("Microsoft Sans Serif", 9F);
                cb.Dock = DockStyle.Right;
                cb.ForeColor = Color.Gainsboro;
                cb.Click += new EventHandler(cb_Click);
                return cb;
            }

    ===============================================

    BOTÃO COM O NOME GERADO

      public Button Botao_Aba_Formulario(string text)
            {
                Button b = new Button();
                b.AutoSize = true;
                b.Size = new Size(25, 25);
                b.Cursor = Cursors.Hand;
                b.FlatAppearance.BorderColor = Color.FromArgb(64, 64, 64);
                b.FlatAppearance.BorderSize = 0;
                b.FlatAppearance.MouseDownBackColor = Color.Transparent;
                b.FlatAppearance.MouseOverBackColor = Color.FromArgb(94, 94, 94);
                b.FlatStyle = FlatStyle.Flat;
                b.Font = new Font("Microsoft Sans Serif", 9F);
                b.Text = text;
                b.Name = text;
                b.Dock = DockStyle.Left;
                b.ForeColor = Color.Gainsboro;
                b.Click += new EventHandler(b_Click);
                return b;
            }

    ========================================

    PANEL COM OS 2 BOTÕES

     public Panel Panel_Aba(string text)
            {
                Panel PA = new Panel();
                PA.Visible = true;
                PA.AutoSize = true;
                PA.Name = textBox1.Text + "panel";
                PA.BorderStyle = BorderStyle.FixedSingle;
                PA.Controls.Add(this.Botao_Aba_Formulario_Fechar());
                PA.Controls.Add(this.Botao_Aba_Formulario(PA.Name));
                PA.Dock = DockStyle.Left;
                return PA;
            }

    ==============================================

    BOTÃO PARA GERAR OS 2 BOTÕES E O PAINEL

      private void button1_Click(object sender, EventArgs e)
            {
                this.panel1.Controls.Add(this.Panel_Aba(textBox1.Text));
            }
    domingo, 26 de julho de 2020 15:06

Todas as Respostas

  • Eu não sei se isso ajuda (afinal eu sou bem novato)

    E não sei se entendi muito bem a sua questão, mas se vc quer reproduzir um sistema de abas, não seria mais fácil implantar um TabControl do que implantar um PANEL?  O TabControl possui um sistema de abas onde cada aba exibe um conjunto de controles de cada vez, ocultando os outros (exatamente como a aba dos navegadores).

    segunda-feira, 27 de julho de 2020 00:04