删除按钮单击时动态创建的文本框

时间:2014-04-27 16:58:56

标签: c# visual-studio-2012

我尝试使用列表动态创建文本框。我现在需要的是,如何通过点击重置按钮重置我创建的所有文本框。

以下是我的代码:

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);
    }
}

2 个答案:

答案 0 :(得分:2)

答案是:

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

你应该声明inputTextBoxes是一个类成员,它是同一个类&#39;按钮。

答案 1 :(得分:0)

将以下行移到事件处理函数之外(函数外部但在类中)

  

List<TextBox> inputTextBoxes;

然后在重置按钮上单击

  

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

编辑:更正了foreach循环中的类类型(从Button到TextBox)