如何通过数字来处理Windows窗体中的文本框?

时间:2016-11-22 04:36:47

标签: c# windows forms

所以我希望有大约12个文本框(稍后我将在下面添加12个图片框),其中包含产品的名称。但是,虽然目录中没有超过12种产品可供选择,但可能会有更少的产品。

为了节省空间,我想我会创建一个循环,如果目录中有产品,则检查每个循环,如果有,则将产品分配给文本框[i]。

所以基本上,我希望能够将textBox1作为textBox [1],textBox2作为textBox [2]等等。

我尝试过这样做

System.Windows.Forms.TextBox[] array = { textBox1, textBox2, textBox3 };

但似乎我只能在初始化中创建这样的对象,并且在那里创建它似乎在任何其他地方都是不可能的,即使是在相同的形式,所以我可以调用该函数只在表单时显示一次初始化,我想每次有人买任何东西时调用显示方法

4 个答案:

答案 0 :(得分:1)

使用List怎么样?

List<TextBox> textboxes = new List<TextBox> { textBox1, textBox2, textBox3 };

为此,您需要对System.Collections.Generic。

的引用

之后,您可以使用列表中的编号访问文本框:

textboxes[0]

答案 1 :(得分:0)

如果您的文本框编号一致,则可以通过他们所在的表单或容器的Controls属性访问它们。您可以直接使用他们的名称:

for(int i = 0; i<12;i++)
{
     this.Controls["textBox"+i.ToString()].Text = "Something";
}

答案 2 :(得分:0)

如果您已经在设计时添加了12个文本框,则可以执行以下操作:

public partial class Form1 : Form
{
    List<TextBox> textboxes; //As a member of the class to be accesible everywhere in the class.
    public Form1()
    {
        InitializeComponent();
        textboxes = new List<TextBox> { textBox1, textBox2, textBox3, ... }; //Just to be sure they are already created.
    }

然后,您可以通过表单textboxes[i]中的索引从表单类的任何方法访问它们。

答案 3 :(得分:0)

创建数组或列表的全局变量

System.Windows.Forms.TextBox[] TxtArray;

然后在表单构造函数中进行初始化

InitializeComponent();

您可以添加

这样的行
TxtArray = new TextBox[] { textBox1, textBox2, textBox3, ... };