在循环中创建控件

本文关键字:控件 创建 循环 | 更新日期: 2023-09-27 17:47:48

我有一些代码,可以向表中添加新单元格,并用文本框填充它们。

到目前为止,我对它的编码方式很好:

        TableCell tCell1 = new TableCell();
        TableCell tCell2 = new TableCell();
        TableCell tCell3 = new TableCell();
        TableCell tCell4 = new TableCell();
        TableCell tCell5 = new TableCell();
        TableCell tCell6 = new TableCell();
        TableCell tCell7 = new TableCell();
        TextBox txt1 = new TextBox();
        TextBox txt2 = new TextBox();
        TextBox txt3 = new TextBox();
        TextBox txt4 = new TextBox();
        TextBox txt5 = new TextBox();
        TextBox txt6 = new TextBox();
        TextBox txt7 = new TextBox();
        tCell1.Controls.Add(txt1);
        tCell2.Controls.Add(txt2);
        tCell3.Controls.Add(txt3);
        tCell4.Controls.Add(txt4);
        tCell5.Controls.Add(txt5);
        tCell6.Controls.Add(txt6);
        tCell7.Controls.Add(txt7);
        tRow.Cells.Add(tCell1);
        tRow.Cells.Add(tCell2);
        tRow.Cells.Add(tCell3);
        tRow.Cells.Add(tCell4);
        tRow.Cells.Add(tCell5);
        tRow.Cells.Add(tCell6);
        tRow.Cells.Add(tCell7);

正如你所看到的,基本上有4条指令被重复了7次。我确信必须有一种方法来实现这一点,只需在FOR循环中使用4行代码,并动态分配所有名称,但我似乎找不到任何能为我指明如何做到这一点的东西。

以下是我想要的东西:

    for (int i = 0; i < 6; i++)
    {
        TableCell tCell[i] = new TableCell();
        TextBox txt[i] = new TextBox();
        tCell[i].Controls.Add(txt[i]);
        tRow.Cells.Add(tCell[i]);
    } 

任何帮助都将不胜感激。

在循环中创建控件

我认为应该这样做:

    for (int i = 0; i < 7; i++)
    {
        TableCell tCell = new TableCell();
        TextBox txt = new TextBox();
        tCell.Controls.Add(txt);
        tRow.Cells.Add(tCell);
    }

确保将6更改为7。

这应该可以正常工作吗?

for (int i = 0; i < 6; i++)
{
    TableCell tCell = new TableCell();
    TextBox txt = new TextBox();
    tCell.Controls.Add(txt);
    tRow.Cells.Add(tCell);
}

不过,我真的不明白你需要这些名字干什么
您是否计划使用"txt5"名称作为对特定文本框的引用
为什么不直接使用tRow.Cells[4].Controls[0] As TextBox

你写的东西实际上和我很接近。不过有几点需要记住。

我认为您不需要数组索引。只要tRow在循环外初始化,它每次都会添加新元素。你可能还想设置每个文本框的ID属性,这样你就可以访问你在路上寻找的任何特定内容。

感谢所有有用的答案。对于那些问我对数组做了什么的人,我没有!这只是我努力实现目标的一个例子。

Ian和Lars的想法是正确的,因为我稍后需要引用这些文本框,所以我只需要使用Eugene和Lubos的解决方案,并确保我添加了一行,给他们顺序ID(txt1、txt2等),这样我就可以做到这一点。

再次感谢所有精彩(快速!)的输入,我现在爱上了这个网站!