如何在c#中定义文本框数组?

如何在c#中定义文本框数组?,c#,arrays,loops,textbox,naming,C#,Arrays,Loops,Textbox,Naming,嗨,当我在Windows应用程序窗体上创建文本框时,我不能将其命名为框[0]、框[1]等等。我之所以想这样做,是因为我想在循环中使用它们。在创建它们之后,如何列出它们?在表单初始化函数中,可以执行以下操作: List<TextBox> myTextboxList = new List<TextBox>(); myTextBoxList.Add(TextBox1); myTextBoxList.Add(TextBox2); mytextBoxList.Add(TextBox

嗨,当我在Windows应用程序窗体上创建文本框时,我不能将其命名为框[0]、框[1]等等。我之所以想这样做,是因为我想在循环中使用它们。

在创建它们之后,如何列出它们?在表单初始化函数中,可以执行以下操作:

List<TextBox> myTextboxList = new List<TextBox>();
myTextBoxList.Add(TextBox1);
myTextBoxList.Add(TextBox2);
mytextBoxList.Add(TextBox3);
var arr = new TextBox[10];

for (var i = 0; i < 10; i++)
{
    var tbox = new TextBox();

    // tbox.Text = i.ToString();

    // Other properties sets for tbox

    this.Controls.Add(tbox);
    arr[i] = tbox;
}

您可以在运行时创建文本框,并将它们放入数组中

如果要在设计时执行此操作,则必须对整个
this.Controls
数组执行一些控制过滤逻辑,以便仅访问所需的文本框。如果在窗体中的所有文本框都是数组中的文本框,请考虑<代码>(CurrimeTeBox)。 设计时的另一个选项是将所有想要的文本框放在一个面板中,该面板将是它们的父对象,然后迭代面板的子对象(控件)并将它们转换为文本框

运行时解决方案类似于:

List<TextBox> myTextboxList = new List<TextBox>();
myTextBoxList.Add(TextBox1);
myTextBoxList.Add(TextBox2);
mytextBoxList.Add(TextBox3);
var arr = new TextBox[10];

for (var i = 0; i < 10; i++)
{
    var tbox = new TextBox();

    // tbox.Text = i.ToString();

    // Other properties sets for tbox

    this.Controls.Add(tbox);
    arr[i] = tbox;
}
var arr=新文本框[10];
对于(变量i=0;i<10;i++)
{
var tbox=新文本框();
//tbox.Text=i.ToString();
//tbox的其他属性集
this.Controls.Add(tbox);
arr[i]=tbox;
}
TextBox[]t=新文本框[10];

对于(inti=0;i我个人不会使用数组,我会使用某种形式的泛型集合,比如List

    List<TextBox> textBoxList = new List<TextBox>();

    //Example insert method
    public void InsertTextBox(TextBox tb)
    {
        textBoxList.Add(tb);
    }

    //Example contains method
    public bool CheckIfTextBoxExists(TextBox tb)
    {
        if (textBoxList.Contains(tb))
            return true;
        else
            return false;
    }
List textBoxList=newlist();
//插入方法示例
公共void InsertTextBox(TextBox)
{
textBoxList.Add(tb);
}
//示例包含方法
公共bool checkiftextboxists(TextBox)
{
if(textBoxList.Contains(tb))
返回true;
其他的
返回false;
}

你不必使用Contains方法,你也可以使用Any(),或者甚至可以找到另一种方法——这取决于你在做什么。我只是觉得在这种情况下,使用泛型集合比使用简单数组更灵活。

实际上我发现
TextBox[]array={firstTextBox,secondTextBox}
也可以使用!

对于
C
只需使用它创建一个文本框数组

public Text [] "YourName" = new Text ["how long you want the array"];
然后将文本框分别添加到数组中。

//声明TextBox的数组
private System.Windows.Forms.TextBox[]txtArray;
专用void AddControls(int cNumber)
{
//分配控件的数量
txtArray=new System.Windows.Forms.TextBox[cNumber+1];
对于(int i=0;i
是的,列表可能会更好。您可以更轻松地添加/删除文本框。该函数在哪里?public MainForm(){InitializeComponent();}这一个?如果是这样,则会发出错误…顺便问一下,我该如何运行它?与myTextBoxList[0]@SarpKaya的工作方式不同,请将其放在InitializeComponent()之后;您的表单初始化点将取决于您正在创建的应用程序的类型…它是windows、Gtk、Mac等…通常会有一个开始代码的入口点,您可以在那里包含此入口点…如果您不使用IDE,并且手动创建所有文本框,您只需在创建后直接使用此代码即可哇,看到函数名以低字符开头很奇怪。它看起来像Java。)哈!我想我的Java根背叛了我。:)Visual Studio 2013将“this.Controls.Add(t[]);”标记为“语法错误;预期值”
 // Declaring array of TextBox
private System.Windows.Forms.TextBox[] txtArray;

private void AddControls(int cNumber)
{

            // assign number of controls

            txtArray = new System.Windows.Forms.TextBox[cNumber + 1]; 

            for (int i = 0; i < cNumber + 1; i++)

            {

                        // Initialize one variable

                        txtArray[i] = new System.Windows.Forms.TextBox();

            }
}