如何根据定义的变量动态创建文本框
本文关键字:动态 创建 文本 变量 何根 定义 | 更新日期: 2023-09-27 17:53:49
我想做这样的事情:我有一个文本框,我在里面放了一个数字。
当我按enter键时,我将这个数字保存在变量id中。然后,我想创建与id变量相同数量的文本框。
它不起作用,因为你不能在数组中设置未知变量,但我怎么能修改这段代码来获得我想要的结果?
private void tbNbCat_KeyDown(object sender, KeyEventArgs e)
{
int id=0;
if (e.KeyCode == Keys.Return){
id = int.Parse(tbNbCat.Text);
MessageBox.Show(id.ToString());
createTxtTeamNames(id);
}
}
public void createTxtTeamNames(int id)
{
TextBox[] txtTeamNames = new TextBox[id];
for (int u = 0; u < id; u++)
{
txtTeamNames[u] = new TextBox();
}
int i = 0;
foreach (TextBox txt in txtTeamNames)
{
string name = "TeamNumber" + i.ToString();
txt.Name = name;
txt.Text = name;
txt.Location = new Point(0, 32 + (i * 28));
txt.Visible = true;
this.Controls.Add(txt);
i++;
}
}
谢谢。
变化
TextBox[] txtTeamNames = new TextBox[id];
List<TextBox> txtTeamNames = new List<TextBox>();
为什么首先要使用数组?
public void createTxtTeamNames(int id)
{
for (int i = 0; i < id; ++i)
{
TextBox txt = new TextBox();
string name = "TeamNumber" + i.ToString();
txt.Name = name;
txt.Text = name;
txt.Location = new Point(0, 32 + (i * 28));
txt.Visible = true;
this.Controls.Add(txt);
}
}