c#:创建一个10x10的复选框字段(和数组)
我有一个问题,我不知道为什么,但我不知道它到底是什么 我想做的就是创建一个10 x 10的复选框区域,作为一个游戏的棋盘 我想到的东西应该是使用这些框的数组,根据字段中的RT坐标,轻松地从框[0,0]到框[9,9]识别它们 这就是我正在努力解决的代码: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 ===================================
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;