0

クラス、配列、および for ループを使用して数独パズルを作成しようとしています。コード ビハインド aspx からパズルを生成したいと考えています。私が直面している問題は、テキスト ボックスの配列を作成する for ループの内容を表示する方法です。

テキストボックスを作成し、パズルの他の機能を含む sTextBox.cs というクラスがあります。次に、sTextBox の配列を作成するクラス puzzleBox.cs があります。これは、パズルの 1 つの正方形の内側です。次に、Box() の配列を作成する Puzzle クラスがあります。このようにして、パズルに必要なすべてのテキスト ボックスを作成する必要があります。私が理解しようとしているのは、パズルを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 の 2 乗) これがこれにアプローチする最良の方法なのか、それとも可能であれば実際にこれを行う方法なのかはわかりません。

4

1 に答える 1

2

PlaceHolder または Panel を ASPX ページに配置し、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);

    }
于 2013-03-28T19:02:46.970 に答える