我正在尝试根据TextBox1中的数字创建TextBoxes的数量,我想在我的程序中使用每个TextBox值。他们的名字是因为txtbx0,txtbx1 ...但是当我想在我的程序中使用时,它会给出错误“当前上下文中不存在名称'txtbx1'”。我怎样才能在我的程序中使用它们?
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int y = Convert.ToInt32(textBox1.Text);
TextBox[] txtbx = new TextBox[y];
for (int i = 0; i < y; i++)
{
txtbx[i]= new TextBox();
txtbx[i].Location = new Point(20, i * 50);
txtbx[i].Size = new Size(100,50);
txtbx[i].Name = "txtbx"+i.ToString();
txtbx[i].Text = txtbx[i].Name;
flowLayoutPanel1.Controls.Add(txtbx[i]);
}
}
答案 0 :(得分:0)
您现在拥有它的方式,可以使用您的数组txtbx[whateverNumber]
访问文本框。为了使它们在您发布的方法之外可访问,您需要使txtbx
数组成为类成员而不是方法范围的变量。
类似的东西:
class Form1 : Form
{
TextBox[] txtbx;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int y = Convert.ToInt32(textBox1.Text);
txtbx = new TextBox[y]; // Now this references the class member
for (int i = 0; i < y; i++)
... etc.
}
}
通过名称单独访问它们并不可行,因为您必须为每个变量都有类成员变量,但您事先并不知道要制作多少个变量。你正在做的数组方法要好得多。您可以使用txtbx[0]
到txtbx[numBoxes - 1]
以其他方式访问它们。