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

本文关键字:文本 创建 动态 单击 按钮 删除 | 更新日期: 2023-09-27 18:00:20

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

以下是我的代码:

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

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

答案是:

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

您应该声明inputTextBoxes是与按钮类相同的类成员。

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

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)