大家好我正在尝试使用类,数组和for循环创建一个数独谜题。非常想从aspx背后的代码生成拼图。我遇到的问题是如何显示创建文本框数组的for循环的内容。
我有一个名为sTextBox.cs的类,它创建一个文本框并包含该谜题的其他功能。然后我有一个类puzzleBox.cs,它创建一个sTextBox数组。这是拼图的单个方块的内部。然后我有Puzzle类创建一个Box()数组。这样它就可以创建拼图所需的所有文本框。我想弄清楚的是如何让拼图显示在aspx上。
代码:
sTextBox.cs
public STextBox()
{
txtBox = new System.Web.UI.WebControls.TextBox();
}
public System.Web.UI.WebControls.TextBox getTextBox()
{
return txtBox;
}
Box.cs
private SodokuTextBox[,] sTBox;
public Box()
{
sTBox = new SodokuTextBox[3,3];
for (int i = 0; i < 3; i++ )
{
for (int j = 0; j < 3; j++ )
{
sTBox[i, j] = new SodokuTextBox(); // make new sodoku textbox
}
}
}
puzzle.cs
{
private Box[,] boxArray;
public Puzzle()
{
boxArray = new Box[3, 3];
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
boxArray[i, j] = new Box(); // make new sodoku textbox
}
}
我一直试图以某种方式将事物插入表中,但我找到的所有方法似乎都不适合我。谢谢你的帮助!!
编辑:
好的,经过深入研究之后,我认为我需要做的是以某种方式将单个文本框放在表格单元格中,然后将表格放大(9的正方形),然后将大表格放入另一个表格中拼图中的单元格(81的正方形)不确定这是否是解决此问题的最佳方法,或者如果可能的话,如何真正做到这一点。
答案 0 :(得分:2)
在ASPX页面上放置PlaceHolder或Panel,给它一个ID,然后你可以在后面的代码中以编程方式向它添加控件,如下所示:
MyPlaceHolder.Controls.Add(textBox);
或者,您可以将对Panel或PlaceHolder的引用传递给Puzzle构造函数:
public Puzzle(PlaceHolder placeHolder)
如果要在代码中创建表,可以按以下步骤操作:
Table tbl = new Table();
tbl.ID = "table1";
placeHolder.Controls.Add(tbl);
for (int row = 0; row < 5; row++)
{
TableRow rw = new TableRow();
TableCell cell = new TableCell();
Label text = new Label();
text.Text = "text";
cell.Controls.Add(text);
rw.Cells.Add(cell);
tbl.Controls.Add(rw);
}