我尝试使用列表动态创建文本框。我现在需要的是,如何通过点击重置按钮重置我创建的所有文本框。
以下是我的代码:
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);
}
}
答案 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)