我有这段代码,可以为我动态创建一些文本字段。 k取自用户btw。
for (int i = 0; i < k; i++)
{
TextBox t1 = new TextBox();
t1.Parent = groupBox2;
t1.Left = textBox2.Left;
t1.Top = textBox2.Top + (i + 1) * 40;
t1.Name = "text" + (i + 1);
t1.Enabled = true;
groupBox2.Controls.Add(t1);
}
我想要做的是,在完成创建阶段后,当用户按下groupbox2的“确定”按钮时,我想获取创建的文本字段的文本属性,但到目前为止我不知道这是怎么回事完成后,因为我给了textfields一个名字,我试过这个但是没有用。
private void button3_Click(object sender, EventArgs e)
{
node1.name = textBox2.Text;
for (int i = 0; i < k; i++)
{
node1.array[i] = Convert.ToInt32("text"+(i+1).Text);
}
}
任何帮助都会很好,谢谢。
答案 0 :(得分:2)
试试这个方法:
private void button3_Click(object sender, EventArgs e)
{
node1.name = textBox2.Text;
for (int i = 0; i < k; i++)
{
TextBox txtBox = (TextBox)groupBox2.FindControl("text" + (i + 1));
if (txtBox != null)
{
node1.array[i] = txtBox.Text;
}
}
}
答案 1 :(得分:1)
遍历groupBox1中的文本框并获取其名称,试试这个:
List<string> TextBoxesName=new List<string>();
foreach (Control item in groupBox1.Controls)
{
if (item is TextBox)
{
TextBoxesName.Add((item as TextBox).Text);
}
}
答案 2 :(得分:0)
设置为动态文本框ID
,而不是groupBox2.FindControl("dynamic_texbox_id")
来获取文本框
答案 3 :(得分:0)
最简单的解决方案是将您的列表框放入某种类型的集合中
List<ListBox> listboxes = new List<ListBox>();
for (...)
{
...
listboxes.add(listbox);
}
然后你可以随时回复他们
或者,既然您要将它们添加到组合框中,为什么不通过该系列呢?