Removing TextBoxes created Dynamically on Button click

陌路散爱 提交于 2019-12-13 08:47:01

问题


I have tried creating textboxes dynamically using lists. All i need now is, how can i reset all text boxes that i have created by hitting a reset button.

The following is my code:

public void button2_Click_1(object sender, EventArgs e)
{
    int number = Convert.ToInt32(textBox2.Text);

    List<TextBox> inputTextBoxes;
    inputTextBoxes = new List<TextBox>();

    for (int i = 1; i <= number; i++)
    {
        Label labelInput = new Label();
        TextBox textBoxNewInput = new TextBox();

        labelInput.Text = "Activity No: " + i;
        labelInput.Location = new System.Drawing.Point(30, textBox2.Bottom + (i * 40));
        labelInput.AutoSize = true;

        textBoxNewInput.Location = new System.Drawing.Point(labelInput.Width+60, labelInput.Top - 3);

        inputTextBoxes.Add(textBoxNewInput);

        this.Controls.Add(labelInput);
        this.Controls.Add(textBoxNewInput);
    }
}

回答1:


Move the following line outside the event handler function (outside the function but inside the class)

List<TextBox> inputTextBoxes;

Then on the reset button click

private void btnReset_Click(object sender, EventArgs e) { foreach(TextBox txt in inputTextBoxes) { this.Controls.Remove(txt); } inputTextBoxes.Clear(); }

Edit: Corrected the class type in foreach loop (from Button to TextBox)




回答2:


The answer is:

 private void resetButton_Click(object sender,EventArgs e)
 {
     for (int i = 0; i <= inputTextBoxes.Length; i++)
     {
         inputTextBoxes[i].Text = "";
     }
 }

And you should declare inputTextBoxes is a class member which is same class' of buttons.



来源:https://stackoverflow.com/questions/23326276/removing-textboxes-created-dynamically-on-button-click

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!