none
Botão excluir textbox criada RRS feed

  • Pergunta

  • Então, criei um panel com scroll e ao apertar o botão nele são criadas 1 textbox e 1 botão, segue o código:

    private const int TextBoxX = 5;                //Posição vertical do textbox no painel
    private const int TextBoxWidth = 300;          //Largura do textbox
    private const int ButtonX = TextBoxWidth + 10; //Posição vertical do button no painel
    private int _controlY = 5;                     //Posição horizontal dos controles
    
    public Form1()
    {
        InitializeComponent();
    }
    
    private void button1_Click(object sender, EventArgs e)
    {
        panel1.Controls.AddRange(new Control[]
        {
            new TextBox
            {
                Location = new Point(TextBoxX, _controlY),
                Size = new Size(300, 20)
            },
    
            new Button
            {
                Text = "Remover",
                Location = new Point(ButtonX, _controlY),
                Size = new Size(100, 20)
            }
        });
    
        _controlY += 25;
    }

    Agora minha duvida é, como eu adiciono um comando ao clicar nesse botão criado, quero que ao clicar nele o textbox criado seja excluido, alguem pode me ajudar

    quinta-feira, 26 de janeiro de 2017 01:54

Respostas

  • Verifica se isso te ajuda!

    public partial class Form4 : Form
        {
            private Button btnDinamico;
            private TextBox txtDinamico;
            private Panel pPanelDinamico;
            private int iBtnDinamico = 0;
            private int _controlY = 5;
    
            public Form4()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                iBtnDinamico++;
    
                pPanelDinamico = new Panel();
                pPanelDinamico.Name = "pPanelDinamico_" + iBtnDinamico;
                pPanelDinamico.Width = 500;
                pPanelDinamico.Height = 35;
                pPanelDinamico.BorderStyle = BorderStyle.FixedSingle;
                pPanelDinamico.Location = new Point(5, _controlY);
    
                txtDinamico = new TextBox();
                txtDinamico.Name = "txtDinamico_" + iBtnDinamico;
                txtDinamico.Size = new System.Drawing.Size(300, 20);
                txtDinamico.Location = new Point(5, 6);
    
                btnDinamico = new Button();
                btnDinamico.Name = "btnDinamico_" + iBtnDinamico;
                btnDinamico.Text = "Remover";
                btnDinamico.Size = new System.Drawing.Size(100, 20);
                btnDinamico.Location = new Point(310, 6);
                btnDinamico.Click += new EventHandler(this.btnDynamicButton_Click);
    
                pPanelDinamico.Controls.Add(txtDinamico);
                pPanelDinamico.Controls.Add(btnDinamico);
    
                this.Controls.Add(pPanelDinamico);
    
                _controlY += 40;
            }
    
            protected void btnDynamicButton_Click(object sender, EventArgs e)
            {
                Button dynamicButton = (sender as Button);
    
                string nomeControl = "pPanelDinamico_" + dynamicButton.Name.Split('_')[1];
    
                foreach (Control item in this.Controls)
                {
                    if (item.Name == nomeControl)
                    {
                        this.Controls.Remove(item);
                        break;
                    }
                }
            }
        }


    Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.


    Daniel Ribeiro Arrais
    Consultor Sênior
    Site: www.danielarrais.com.br
    Linkedin: http://www.linkedin.com/in/danielarrais
    E-mail: arraishapkido@gmail.com
    Skype: dani.arrais

    • Marcado como Resposta DecaDrawings quinta-feira, 26 de janeiro de 2017 19:11
    quinta-feira, 26 de janeiro de 2017 10:56

Todas as Respostas

  • Olá DecaDrawings

    Uma pergunta, quantos painéis você vai adicionar no form? Da forma que esta ele está adicionando 2 painéis 1 abaixo do outro e após isso acredito que esta sobrepondo o segundo painel!<o:p></o:p>


    Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.


    Daniel Ribeiro Arrais
    Consultor Sênior
    Site: www.danielarrais.com.br
    Linkedin: http://www.linkedin.com/in/danielarrais
    E-mail: arraishapkido@gmail.com
    Skype: dani.arrais

    quinta-feira, 26 de janeiro de 2017 10:08
  • Verifica se isso te ajuda!

    public partial class Form4 : Form
        {
            private Button btnDinamico;
            private TextBox txtDinamico;
            private Panel pPanelDinamico;
            private int iBtnDinamico = 0;
            private int _controlY = 5;
    
            public Form4()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                iBtnDinamico++;
    
                pPanelDinamico = new Panel();
                pPanelDinamico.Name = "pPanelDinamico_" + iBtnDinamico;
                pPanelDinamico.Width = 500;
                pPanelDinamico.Height = 35;
                pPanelDinamico.BorderStyle = BorderStyle.FixedSingle;
                pPanelDinamico.Location = new Point(5, _controlY);
    
                txtDinamico = new TextBox();
                txtDinamico.Name = "txtDinamico_" + iBtnDinamico;
                txtDinamico.Size = new System.Drawing.Size(300, 20);
                txtDinamico.Location = new Point(5, 6);
    
                btnDinamico = new Button();
                btnDinamico.Name = "btnDinamico_" + iBtnDinamico;
                btnDinamico.Text = "Remover";
                btnDinamico.Size = new System.Drawing.Size(100, 20);
                btnDinamico.Location = new Point(310, 6);
                btnDinamico.Click += new EventHandler(this.btnDynamicButton_Click);
    
                pPanelDinamico.Controls.Add(txtDinamico);
                pPanelDinamico.Controls.Add(btnDinamico);
    
                this.Controls.Add(pPanelDinamico);
    
                _controlY += 40;
            }
    
            protected void btnDynamicButton_Click(object sender, EventArgs e)
            {
                Button dynamicButton = (sender as Button);
    
                string nomeControl = "pPanelDinamico_" + dynamicButton.Name.Split('_')[1];
    
                foreach (Control item in this.Controls)
                {
                    if (item.Name == nomeControl)
                    {
                        this.Controls.Remove(item);
                        break;
                    }
                }
            }
        }


    Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.


    Daniel Ribeiro Arrais
    Consultor Sênior
    Site: www.danielarrais.com.br
    Linkedin: http://www.linkedin.com/in/danielarrais
    E-mail: arraishapkido@gmail.com
    Skype: dani.arrais

    • Marcado como Resposta DecaDrawings quinta-feira, 26 de janeiro de 2017 19:11
    quinta-feira, 26 de janeiro de 2017 10:56