点击时我有一个按钮动态创建文本框:
for (int i = 0; i < length; i++)
{
Name.Add(new TextBox());
System.Drawing.Point locate = new System.Drawing.Point(137, 158 + i * 25);
(Name[i] as TextBox).Location = locate;
(Name[i] as TextBox).Size = new System.Drawing.Size(156, 20);
StartTab.Controls.Add(Name[i] as TextBox);
}
我想在Name [i]中输入文本转换为字符串,然后将其设置为标签
答案 0 :(得分:3)
您可以使用Control.ControlCollection.Find。
<强>更新:强>
TextBox txtName = (TextBox)this.Controls.Find("txtNameOfTextbox", true)[0];
if (txtName != null)
{
return txtName.Text;
}
答案 1 :(得分:0)
你没有说Name
是什么类型,它看起来像某种类型的列表。尝试使用List<TextBox>
,您可以直接访问TextBox
属性。像这样的东西。我也不确定StartTab
是什么控件,所以我只使用Panel
来获取此测试代码。 (您还应该知道Name
屏蔽了表单的Name
属性,这就是我将您的列表更改为name
的原因
public partial class Form1 : Form
{
List<TextBox> name = new List<TextBox>();
int length = 5;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < length; i++)
{
name.Add(new TextBox() { Location = new System.Drawing.Point(137, 158 + i * 25),
Size = new System.Drawing.Size(156, 20) });
StartTab.Controls.Add(name[i]);
}
}
private void button2_Click(object sender, EventArgs e)
{
for (int i = 0; i < length; i++)
{
StartTab.Controls.Add(new Label() {Location = new System.Drawing.Point(name[i].Location.X + name[i].Width + 20,
name[i].Location.Y),
Text = name[i].Text,
AutoSize = true });
}
}
}