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

时间:2012-05-27 01:38:23

标签: c# arrays loops textbox naming

当我在Windows Application Form上创建文本框时,我无法将其命名为box [0],box [1]等。我想这样做的目的是因为我想在循环中使用它们。

7 个答案:

答案 0 :(得分:7)

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

List<TextBox> myTextboxList = new List<TextBox>();
myTextBoxList.Add(TextBox1);
myTextBoxList.Add(TextBox2);
mytextBoxList.Add(TextBox3);

现在,您可以使用下面的“myTextboxList”进行搜索:

Foreach (TextBox singleItem in myTextboxList) {
    // Do something to your textboxes here, for example:
    singleItem.Text = "Type in Entry Here";
}

答案 1 :(得分:5)

实际上我发现TextBox[] array = { firstTextBox, secondTextBox };也有效!

答案 2 :(得分:1)

您可以在运行时创建文本框,只需将它们放在一个数组中......

如果您想在设计时执行此操作,则必须在整个this.Controls数组上执行一些控制过滤逻辑,以便仅访问所需的文本框。如果表单中的所有文本框都是数组中所需的文本框,请考虑if (currControl is TextBox)

设计时的另一个选择是将所有想要的文本框放在一个面板中,这个面板将成为它们的父项,然后迭代面板的子项(控件)并将它们转换为TextBox。

运行时解决方案类似于:

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;
}

答案 3 :(得分:0)

我个人不会为此使用数组。我会使用某种形式的通用集合,比如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;
    }

你不一定要使用Contains方法,你也可以使用Any(),或者甚至可以找到另一种方式 - 所有这些都取决于你正在做什么。我只是认为在这种情况下使用泛型集合比简单数组更具灵活性。

答案 4 :(得分:0)

for C#只需使用它来创建一个文本框数组

public Text [] "YourName" = new Text ["how long you want the array"];

然后单独将文本框添加到数组中。

答案 5 :(得分:0)

TextBox Array using C#

 // 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();

            }
}

答案 6 :(得分:-1)

TextBox[] t = new TextBox[10];
for(int i=0;i<required;i++)
{ 
   t[i]=new TextBox();
   this.Controls.Add(t[]);
}