c#:创建一个10x10的复选框字段(和数组)

c#:创建一个10x10的复选框字段(和数组),c#,arrays,loops,checkbox,multidimensional-array,C#,Arrays,Loops,Checkbox,Multidimensional Array,我有一个问题,我不知道为什么,但我不知道它到底是什么 我想做的就是创建一个10 x 10的复选框区域,作为一个游戏的棋盘 我想到的东西应该是使用这些框的数组,根据字段中的RT坐标,轻松地从框[0,0]到框[9,9]识别它们 这就是我正在努力解决的代码: private void Form1_Load(object sender, EventArgs e) { // == OPTIONS ===================================

我有一个问题,我不知道为什么,但我不知道它到底是什么

我想做的就是创建一个10 x 10的复选框区域,作为一个游戏的棋盘

我想到的东西应该是使用这些框的数组,根据字段中的RT坐标,轻松地从框[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]);
            }
        }

    }
private void Form1\u加载(对象发送方,事件参数e)
{
//==选项========================================
int xpos=60;//第一个复选框的位置(x)
int ypos=60;//第一个复选框的位置(y)
int size=10;//行数和列数
int spc=30;//框之间的间距(默认值:20)
// ====================================================
//其他变量
int x,y;
//创建游戏场
复选框[,]框=新复选框[大小,大小];
对于(int i=0;i
我从中得到的只是一列标记为[0,0]到[0,9]的复选框

即使我在x和y或者i和j之间切换,这也不会改变。也就是说,我永远不会得到一行复选框,只会得到一列。这件事我哪里做错了

我只得到那10个复选框,没别的了。它们似乎也没有相互重叠

希望你能帮我:)谢谢。
timo.

默认情况下,复选框太宽

尝试使用(例如):

并将其添加到循环中:

box[i, j].Width = 40;

如果是10乘以10的字段,则在框[0,0]到框[9,9]之间有复选框,而不是“从框[0,0]到框[10,10]”。您还需要考虑复选框的宽度和高度。您是否尝试过调试它,以查看哪些值计算不正确?我不认为你需要检查总共100个复选框来找出错误在哪里…你调试代码了吗?在最后一行设置断点,并检查此.controls中有多少控件。如果是HTML,请检查生成的HTML的源代码以检查复选框。顺便说一句,知道您正在使用哪个GUI工具包可能比复选框(很可能是WinForms)对问题标记更有价值。就是这样,我确实删除了它标记框的部分,添加该行以将框的宽度更改为20,然后它也可以使用spc=20。。非常感谢你的帮助
box[i, j].Width = 40;