C#Sudoku Puzzle

时间:2013-03-28 18:59:46

标签: c# asp.net sudoku

大家好我正在尝试使用类,数组和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的正方形)不确定这是否是解决此问题的最佳方法,或者如果可能的话,如何真正做到这一点。

1 个答案:

答案 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);

    }