如何根据定义的变量动态创建文本框

本文关键字:动态 创建 文本 变量 何根 定义 | 更新日期: 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);
    }
}