2013-03-28 2 views
0

안녕하세요 클래스, 배열 및 for 루프를 사용하여 스도쿠 퍼즐을 만들려고합니다. 꽤 많이 aspx 뒤에 코드에서 퍼즐을 생성하고 싶습니다. 문제는 텍스트 상자의 배열을 만드는 for 루프의 내용을 표시하는 방법입니다.C# Sudoku Puzzle

나는 텍스트 상자를 만들고 퍼즐의 다른 기능을 포함하는 sTextBox.cs라는 클래스가 있습니다. 그런 다음 sTextBox 배열을 만드는 puzzleBox.cs 클래스가 있습니다. 이것은 퍼즐의 한 칸의 내부입니다. 그런 다음 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 




     } 
    } 

이 난에 물건을 삽입하려고했는데 어떻게 든 테이블하지만 모든 방법을 th 나는 나를 위해 일하는 것 같지 않았다. 어떤 도움을 주셔서 감사합니다 !!

편집 :

좋아, 그래서 조금 더는 그때 그때 큰 (9 평방) 할 테이블을 어떻게 든 테이블 셀에 각각의 텍스트 상자를 넣어하는 것입니다 필요 생각하는 일을 통해 작업 후 큰 테이블을 퍼즐 (81의 제곱) 내의 다른 테이블 셀에 넣으십시오.이 방법에 접근하는 것이 가장 좋은 방법인지 또는 가능하다면이 작업을 실제로 수행하는 방법인지 확실하지 않습니다.

답변

2

장소 자리 표시 자 또는 ASPX 페이지에서 패널 중 하나가, 그에게 ID를 부여하고 프로그래밍과 같은 뒤에 코드에서 컨트롤을 추가 할 수 있습니다 또는

MyPlaceHolder.Controls.Add(textBox); 

, 당신은에 전달할 수 있습니다 퍼즐 생성자에 패널 또는 자리 표시 자 중 하나에 대한 참조 : 당신은 당신의 코드에서 테이블을 만들려면

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

    } 
+0

그래, 텍스트 상자를 만드는 함수 내에서 이렇게하려고합니다. 불행히도 그것은 클래스 내에 있으며 aspx 항목 (패널)을 참조하는 것을 좋아하지 않습니다. 불가능한 일을하려고하는 느낌이 들었습니다. – Jobokai

+0

코드 숨김의 PageLoad에서 클래스의 메서드로 패널을 전달하거나 클래스에서 ControlCollection을 반환하는 클래스의 메서드를 사용해야합니다. PageLoad가 컨트롤을 가져 오기 위해 호출합니다. 페이지 또는 페이지의 일부 컨트롤을 참조하지 않고 페이지에 내용을 넣을 수있는 방법은 없습니다. – Crake

+0

고마워요. 이것은 큰 도움이됩니다! – Jobokai