删除单击按钮时动态创建的文本框
本文关键字:文本 创建 动态 单击 按钮 删除 | 更新日期: 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)