2013-10-22 59 views
2

我有一個問題,我不知道爲什麼,但我不明白它實際是什麼。c#:創建一個10x10字段(和數組)的複選框

我想要做的就是創建一個10 x 10的複選框作爲基本的遊戲板。

我想出的東西應該使用這些盒子的數組,根據場地中的座標,從盒子[0,0]到盒子[9,9]輕鬆識別它們。

這是我與掙扎代碼:

 private void Form1_Load(object sender, EventArgs e) 
    { 
     // == OPTIONS ======================================== 
     int xpos = 60; // Position of the first Checkbox (x) 
     int ypos = 60; // Position of the first Checkbox (y) 

     int size = 10; // Number of Rows and Columns 

     int spc = 30; // Space between boxes (Default:20) 
     // ==================================================== 

     //other Variables 
     int x, y; 


     //Creating the Game Field 
     CheckBox[,] box = new CheckBox[size,size]; 


     for (int i = 0; i < size; i++) 
     { 

      for (int j = 0; j < size; j++) 
      { 

       box[i, j] = new CheckBox(); 

       //For Debugging Purpuses: Showing i and j next to checkBox 
       box[i, j].Text = i + "" + j; 

       //Set Position 
       y = i * spc + xpos; 
       x = j * spc + ypos; 
       box[i, j].Location = new Point(x,y); 

       this.Controls.Add(box[i, j]); 
      } 
     } 

    } 

所有我從這個得到的是標誌着一個複選框單列[0,0]到[0,9]。

即使我切換x和y或i和j,那永遠不會改變。所以i.E.我永遠不會得到一排複選框,只是總是一列。我在哪裏錯了?

我只是得到這10個複選框,沒有更多。他們似乎也沒有被放在彼此之上。

希望你能幫助我在這裏:)謝謝。 timo。

+2

如果是10倍的10場,你會從盒子複選框[0 ,0]到框[9,9],而不是「從框[0,0]到框[10,10]」。 –

+0

您還需要考慮複選框的寬度和高度。您是否嘗試調試它以查看值的未正確計算的位置?我不認爲你需要總共檢查100個複選框才能找出錯誤的位置...... –

+0

您是否調試過代碼?在最後一行設置一個斷點,並檢查this.Controls中有多少個控件。如果它的HTML,請檢查生成的html的源代碼來檢查複選框。 –

回答

1

缺省情況下,複選框太寬。

與(例如)試試:

int spc = 50; 

,並添加這個循環中:

box[i, j].Width = 40; 
+0

就是這樣,我確實刪除了標註框的部分,添加了一行將框的寬度更改爲20,然後它與spc = 20一起工作。非常感謝您的幫助 – Timme

相關問題