6

嗨,当我在 Windows 应用程序表单上创建文本框时,我无法将其命名为框 [0]、框 [1] 等。我这样做的目的是因为我想循环使用它们。

4

7 回答 7

9

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

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";
}
于 2012-05-27T01:47:52.180 回答
8

其实我也找到TextBox[] array = { firstTextBox, secondTextBox };作品了!

于 2012-05-27T02:45:51.007 回答
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;
}
于 2012-05-27T01:48:24.150 回答
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(),或者甚至可能找到另一种方法 - 这一切都取决于您在做什么。我只是认为在这种情况下,使用泛型集合比简单数组更灵活。

于 2012-05-27T01:53:14.490 回答
0

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

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

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

于 2016-06-22T09:34:15.330 回答
0

使用 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();

            }
}
于 2016-09-05T04:06:14.953 回答
-1
TextBox[] t = new TextBox[10];
for(int i=0;i<required;i++)
{ 
   t[i]=new TextBox();
   this.Controls.Add(t[]);
}
于 2012-05-27T01:52:44.840 回答